Monday, October 18, 2010

FOSS can implement patented standards

Anti-IP extremists and self-serving hypocrites do the cause of free and open source software a disservice with incorrect claims about the use of patented standards in FOSS projects. They say such patents must be made available by their holders on a royalty-free and, more broadly speaking, generally restriction-free basis in order to be compatible with FOSS licenses, especially the GPL. That's simply not true.

Not only is it untrue, and disingenuous. I also consider it dangerous. Software patents are a fact of life. Their abolition isn't achievable. Since there are countless software patents covering a huge number of technologies and functionalities, FOSS must find ways to deal with patents, and in fact, it already has. In particular, it must continue to find constructive and realistic ways rather than just insist that patent holders waive all rights, which isn't going to work with all right holders.

If such extremism were the only way, Linux and other important free and open source software would sooner or later be unusable in most of the industrialized world, which is increasingly mixed-source.

If the FOSS side and the patent side are both reasonable, the combination of both works without problems. If some FOSS people act unreasonably, they can certainly make their projects largely irreconcilable with patents (such as by using the highly political and unpopular GPLv3). That's self-inflicted damage of a kind that no responsible decision-maker can support. Conversely, if patent holders try to use intellectual property rights to foreclose FOSS-based competition (such as IBM against TurboHercules), that's also a big problem. But if patents are contributed to a standard on fair, reasonable and non-discriminatory (FRAND) terms, everything's fine.

My mobile phone stands as proof

I recently bought a Samsung Galaxy S i9000 smartphone. It's powered by Android, which is based on Linux, the most important piece of software available under the GPL. Samsung is known to pay patent royalties on those devices, just like its major competitors (such as HTC and LG).

I wish they'd all oppose those patents politically, but even if they did and at some point succeeded, we'd still need a solution for today's framework. And that solution is called licensing. More specifically, what's needed is licensing on FRAND terms.

Linux was the first example. Here's the second: most if not all of the applications for my phone are written in the Java programming language. That one is effectively controlled by a single vendor, Oracle (since it acquired Sun, the original cradle of Java). Java is a de facto standard. Oracle provides different pieces of Java software under the GPL. But the Java patent license is among the most restrictive ones in the industry.

The fact that no free software organization or other entity sues Oracle over this (instead, Oracle itself is suing Google in a different Java-related context) shows that patented standards aren't at odds with the GPL.

More on the Java patent license

On Wednesday, the so-called European Committee for Interoperable Systems (ECIS) published a rather aggressive statement on the European Interoperability Framework (EIF), a set of EU procurement guidelines.

Oracle is a member of ECIS, but even more importantly, Thomas Vinje, Oracle's outside counsel for EU antitrust matters, is ECIS' spokesman and lawyer. If I were an EU official or a journalist and if he were telling me about how open source needs royalty-free and generally restriction-free access to patents on standards, I would ask him: "Mr. Vinje, can the Java standard be implemented freely under the GPL by anyone, even if none of Oracle's own GPL'd code is used for this?"

I would point him to reports like this one, according to which Oracle refuses to grant a Java patent license to one of the most important open source foundations.

Should he -- contrary to all the evidence -- answer with Yes, I'd ask him to show me the patent license that would allow this, and as I write these lines, he wouldn't be able to present anything like that. The patent license contained in the Java specifications is very restrictive, even if royalty-free. The GPL generally refers to "conditions" and "obligations" related to patents. It mentions royalties merely as an example of a patent-related condition/obligation.

I can't imagine that Thomas Vinje (again, he's Oracle's outside counsel for EU antitrust matters) would want Java to be excluded from use by European governments under the terms of the EIF. So other patent holders should have the same flexibility to reserve certain rights, as long as they do so on a FRAND basis.

A look at different FOSS licenses

Different FOSS licenses address the subject of patents in different ways. It's important to make the dinstiction between rules governing the patents belonging to a contributor to (or distributor of) a FOSS project and rules concerning patents licensed from third parties. FOSS licenses take different approaches to those scenarios. For the most part, licensing patents from third parties doesn't represent any problem.

GPLv2

GPLv2 doesn't contain an explicit patent grant. There's only an implicit one. I've explained the limitations of that implicit patent license in this posting. Basically, if someone publishes software under GPLv2, such as Oracle with some of its Java software, everyone using that software without modifications is pretty safe from patent infringement assertions. But once the code is altered, it's better not to rely on the implicit license.

The foregoing relates to patents held by someone who publishes code under the GPLv2. The other scenario addressed by the GPLv2 is the one that really matters in connection with patented standards: the distribution of GPL'd code by someone who obtains a patent license from a third party.

The GPLv2's preamble claims that a patent must be licensed for everyone's free use on GPL terms or not at all. Nevertheless, in 2006 Novell announced a partnership with Microsoft, with one of its effects being "that customers deploying technologies from Novell and Microsoft no longer have to fear about possible lawsuits or potential patent infringement from either company."

There was some criticism by free software extremists, and there were also questions by some very reasonable people, but four years later, no one has made a legal claim that this constituted a violation of GPLv2. The language in the GPLv2 doesn't disallow all ways in which one can satisfy the requirements of a patent holder.

Meanwhile, such companies as Amazon.com, Salesforce.com and TomTom have agreed to pay royalties for using patents that (according to my interpretation of the announcements) included patents that read on Linux. No one has formally accused those companies of GPLv2 violations either. I gave more examples further above (where I contemplated my Android-based Samsung smartphone). And I could talk about Red Hat's payments of patent royalties (which I may write about in more detail some other time).

GPLv3

When free software radicals saw how pragmatically some major open source distributors dealt with patent licensing, they chose the path of defiance: the GPLv3, as mentioned further above. While they were drafting that one, they saw the Microsoft-Novell partnership. Not only was that partnership possible under GPLv2: even the first drafts of GPLv3 wouldn't have disallowed it. Here's what Richard Stallman said in 2006:

It turns out that perhaps it’s a good thing that Microsoft did this now, because we discovered that the text we had written for GPL version 3 would not have blocked this, but it’s not too late and we’re going to make sure that when GPL version 3 really comes out it will block such deals. We were already concerned about possibilities like this [...]

So if the inventor of the GPL admits that even the early drafts of GPLv3 didn't block inbound patent licensing (even though this was the single biggest reason for which the FSF started the GPLv3 process in the first place), how can anyone reasonably claim that it isn't possible with GPLv2?

GPLv3 ultimately became very restrictive, but as a result, it's a big-time failure. No major open source project (such as Linux) has embraced it. So when I say "GPL", I usually mean the GPLv2 because that's the only version of the GPL that's relevant in the real world.

Apache Software License 2.0

The Apache Software License 2.0 (ASL) contains, in its Article 3, an explicit patent license. It has an interesting defense mechanism where someone instigating litigation over an alleged patent infringement automatically becomes exposed to possible counterclaims by other patent holders who contributed to the same ASL'd project. The patent grant itself is limited to the patents someone may hold on their contributions to a project and the license contains no restrictions or prohibitions (like the GPLv3) on the terms of a third party patent license. Therefore, someone can implement a standard patented by other parties and work out a license with them without having to take care of the entire ecosystem. That's reasonable.

BSD licenses

There's a very popular family of FOSS licenses called the Berkeley Software Distribution (BSD) licenses. Those are rather short and simple. They don't even mention the word "patent". As a result, there's no problem with implementing patented standards. If someone publishing software on such terms holds any patents that read on their code, there's an implicit license grant. If someone licenses patents from third parties, there's nothing in a standard BSD license that would prevent the implementation of such a standard.

European Union Public License v1.1

The European Union Public License v1.1 (EUPL) was published in 2007 and should be a logical choice for European governmental bodies (at the EU level as well as in the Member States) for publishing software on FOSS terms. The idea of governments sharing their development efforts on FOSS terms is a great one: if taxpayers fund development in one place, taxpayers in another shouldn't have to pay again (except for specific adaptations that may be needed).

The EUPL contains an explicit patent license as far as the patents of someone publishing code under it are concerned. It doesn't contain any clause that would prohibit the implementation of patented standards if those patents are held by third parties.

In its FAQ on the EUPL, the European Open Source Observatory and Repository (OSOR) states that "when public administrations are using or distributing their own specific software under the EUPL, the risk from legal action related to patent infringement, while not zero, is very low." This relates to a scenario where a patent holder would claim an infringement. The EUPL per se doesn't prohibit the use of third-party patents.

MXM license

It is even possible to define an open source license that limits its scope only to the copyright aspects of the program code distributed under it without explicitly or implicitly restraining code contributors or distributors from enforcing their patent-based rights.

For a working group of the MPEG multimedia audio/video codec consortium, Carlo Piana, an Italian FOSS lawyer who also advises the Free Software Foundation Europe and counts Oracle among his recent clients, designed a license that was based on the Mozilla Public License (Mozilla is the foundation behind Firefox and other free software) but with a carve-out for patents. The new license was called the MXM license.

In this blog posting, Carlo explained his motivation. He pointed out that his actions shouldn't be confused for an FSFE effort. He knew this was going to be controversial in open source circles where software patents are a red flag. His justification nevertheless stresses that (in other words) political opposition to software patents is one thing and trying to find a way for patent holders to publish and distribute open source software is another. That distinction between ideology and pragmatism is key.

The MXM license goes way beyond what's needed to implement standards patented by third parties. Compared to what it does, licensing patents from third parties is child's play.

Summary of different licenses with a view to custom software developed by/for governments

For governmental bodies seeking to develop (or to have subcontractors develop) custom software on open source terms, there's no shortage of appropriate licenses that can handle patented standards.

Apart from the GPLv3, which is inherently incompatible with patented standards because it was purposely designed that way, almost any other FOSS license will work. Such licenses as the European Union Public License and the wildely popular Apache license and BSD licenses don't create any problems for those who implement third-party patents.

Even the GPLv2 is, contrary to what some people claim, not incompatible with the notion of third-party patents. Numerous companies using and distributing software under the GPLv2 have made arrangements with patent holders, including that they have accepted to pay royalties, and to date I'm not aware of any of them having experienced any problem because of that.

This is actually good news for FOSS. If it couldn't deal with such patents, it would be strategically lost.

If you'd like to be updated on patent issues affecting free software and open source, please subscribe to my RSS feed (in the right-hand column) and/or follow me on Twitter @FOSSpatents.