Monday, August 16, 2010

Oracle vs. Google licensing issues

A few days ago Oracle announced its patent infringement suit against Google, claiming that Android violates seven Java patents (plus unspecified copyrights).

Both parties haven't said much in public. I would really have liked to see indications of constructive, good-faith efforts (by both of them) to resolve the issue with a mutually acceptable license deal. It may take some more time -- possibly a long time -- to get there. As long as so little is known about what preceded the lawsuit, both deserve the benefit of the doubt about their intentions. That's separate from the question of software patents in general and their use against FOSS.

In recent days I have seen two talking points that looked to me like attempts to justify Oracle's action. I'd like to comment on those. They relate to licensing issues, and I believe I can shed some light on them.

Google's suspected non-compliance with the Java specification

Bruce Perens, whom I know as a staunch opponent of software patents, pointed out that Google might not have adhered to every detail of the intellectual property license granted by the Java Language Specification.

That IP grant is royalty-free but it's tied to a variety of conditions. In particular, it doesn't allow "subsetting or supersetting", that is to say, adding anything on top of the specification ("embrace, extend, extinguish") or implementing only parts of it.

Google's virtual machine for Android, a FOSS program named Dalvik, may very well deviate from the specifications. While technically different, Dalvik practically serves the purpose of a Java virtual machine (JVM). Instead of executing Java bytecode, it executes files in its own .dex (Dalvik executable) format. Those .dex files are generated from Java source code.

Assuming Google has departed from the Java specification, it can't expect to benefit from the royalty-free IP grant. That's one thing. But in that case I would still like to see a license deal as the ultimate solution. If Google elected not to meet the requirements for royalty-free access, then it should pay.

Like I said on previous occasions, also in the WebM context, Google should then also take care of the entire ecosystem concerned, not only solve the problem for itself. I'm much more concerned about all those Android application developers and their investment of time, energy and money. Google will survive. But the little guys must have legal certainty. I hope they won't have to rewrite existing programs.

I don't want to speculate too much, but it's not entirely inconceivable that Oracle wants to prevent Google from hijacking Java via Android. Should there be any legitimate concerns of that kind, I hope they will also be resolved by way of a license agreement. The sooner, the better.

The flawed Java Community Process

Some opponents of Oracle's acquisition of Sun had serious concerns over Oracle getting to control the Java Community Process (JCP), "the mechanism for developing standard technical specifications for Java technology."

The JCP is just window dressing. It suggests some kind of community involvement and democratic decision-making, but the owner of Java (originally Sun, now Oracle) is firmly in control. The owner controls so many voting rights that even if all of the truly independent representatives agreed on something, they wouldn't be able to take decisions against Oracle and its stooges.

So we're talking about a single vendor standard with fake democracy. It's a fact -- not a crime -- that there are pervasive technologies out there that one vendor controls. It's also a fact that Oracle just inherited that mess from Sun. But it's hypocritical to lobby politicians about "open standards" while acting so heavy-handedly.

Don Deutsch, Oracle's VP Standards Strategy and Architecture, gave this presentation at the OpenForum Europe Summit two months ago in front of EU officials. The deck has 20 slides, and slide number 13 is unbelievable. It states that there are two choices, a "proprietary base" and an "open standards foundation". That slide gives three reasons why "proprietary" is bad and "open" is good.

Give me a break. What is Java if not a proprietary, patent-encumbered standard?

The third point Mr. Deutsch made for open standards is the opportunity for "you" (he meant all stakeholders) to influence the evolution of a technology base. At that lobbying event, he was sitting on the same panel (Session 1 on this page) as David Drummond, Google's chief lawyer.

IBM, Oracle and Google are the three largest members of OpenForum Europe. I recently pointed out that all three of them are non-open in some important respects, so their lobbying isn't credible.

Would Google have been safer with the GPL?

Some say now that Google could have avoided the problem by building its Java virtual machine on the basis of the existing OpenJDK (Java Development Kit), then adding mobile-specific code. The OpenJDK source code is available under the GPLv2, and according to the copyleft principle, Google would then have been bound to the GPLv2 as well. Alternatively, JavaME is part of the phoneME package. The majority of phoneME components appear to be GPL'd.

The GPLv2 stipulates an implicit patent grant (in this case, by Oracle as the right holder) vis-à-vis "forkers" (developers of derivative works, which is what Google would have become by taking that code and modifying it).

Note: under GPLv2 the patent license is only implicit, not explicit. The problem with an implicit patent license is that you have a considerable degree of legal uncertainty once the program is modified.

The European Commission recognized that factor of uncertainty in paragraph 733 of its decision on the Oracle/Sun merger and accurately noted in footnote 456 that Oracle's legal team (which effectively included Eben Moglen) didn't cite even one court decision to buttress the claim that the GPLv2 would take care of patent problems between a "forker" and the original right holder.

If the GPLv2 solved the problem, the FSF wouldn't have changed its approach to patents so fundamentally with GPLv3.

Apart from whether the GPLv2 would have solved the patent problem, it seems that Google generally tries to navigate around the GPL in connection with Android because the Apache Software License is more favorable to the proprietary, closed-source strategies of certain vendors of Android-based phones. That's a serious issue to bear in mind when discussing Android and the Oracle-Google dispute.

Clarification of my attitude toward the GPL

I know that the GPL is a politically sensitive issue in the community, so let me make this very clear: my own experience with the GPLv2 is extremely positive. It enabled MySQL AB to derive commercial value from its open source project and to retain a maximum degree of control. MySQL AB was founded in 2001 (a few years after the project itself) and in 2008 was sold for $1 billion to Sun. What a success story.

Even in connection with Oracle's acquisition of MySQL (as part of Sun), I continued to believe that the GPLv2 was the best license for MySQL.

I didn't want Oracle to acquire that much control over a technology that had become much more of a competitive threat to Oracle's core business than most industry analysts realized. But the solution I consistently advocated was simply that Oracle shouldn't be allowed to acquire MySQL. If they had wanted to buy the rest of Sun, then they should have sold MySQL to a suitable third party of their choosing ("suitable" means "no company about which the European Commission would have had concerns") and that third party should then have continued the MySQL business under the GPLv2.

The possibility of reducing Oracle's level of control by a license change would have been better than nothing but still insufficient to truly resolve the competition concerns I outlined. On numerous occasions, I argued fervently against any claim that a license change away from the GPL would have been a substitute for a divestiture and a continuation under the GPL. I stressed the severe downside of a license change until I was blue in the face.

In some online discussion forums, the opposite of what I just wrote may be claimed. Forgive me for the strong language, but those are damn lies, originating from sources who don't deserve to be trusted when the interests of certain corporations are at stake, and propagated by people who may in most cases mean well for FOSS but regrettably relied on those dubious sources.

I want to back up with quotes and documents my pro-GPL logic:
  • An early version of a position paper only said that "some major concerns [...] could be somewhat alleviated" by a license change (from GPL to ASL). Those who quote that and hold it against me are untruthful in two ways:

    • They fail to point out that "some" means "not all", and "somewhat alleviated" means "this isn't a complete solution" (not even to parts of the issue). The European Commission's guidelines for horizontal merger cases clearly require any solution of a merger problem to be complete, reliable and seamless. Under the rules, the standard solution is a spin-off of the problematic part of a business; if it's not a spin-off, it's an exception and must be equally effective. Our position paper made it clear that a license change would have been only a partial solution to only parts of the problem -- clearly much weaker than a divestiture of MySQL to a suitable third party would have been, therefore insufficient under EU rules. We just wanted the regulators to know about the pro's and con's of that suboptimal alternative, especially since we never knew what Oracle was going to propose to secure approval of the deal (such as even weaker license changes).

    • Very importantly, the liars take those words out of context by omitting this statement from the very same section of the position paper: "such a commitment [license change] could not be reasonably expected to result in a continuation of disruptive innovation at the level of recent years" (and the whole paper argued about how important MySQL was as a major force of disruptive innovation).

  • Monty Program press release of 19 October 2009, just look at the headline: "MySQL founder outlines solution: instead of letting Sun suffer, Oracle should sell MySQL"; in that press release, Monty called on Oracle "to be constructive and commit to sell MySQL to a suitable third party"

  • Presentation slides for my Silicon Valley press conference on 26 October 2009 and my Wall Street analyst briefing on 27 October 2009: headline on page 12: "Only divestiture [spin-off] sustains virtuous circle"; last bullet point on page 13: "Only separate commercial entity will use MySQL to compete with Oracle ever more"

  • FAQ documents provided to numerous journalists and analysts of 12 November 2009 and of 23 November 2009: bottommost paragraph on page 1 (of both documents):
    "Could Oracle resolve antitrust concerns by other means than a divestiture, such as licensing-based remedies?
    As a general rule there is a preference for clean structural remedies rather than behavioural remedies such as licensing which are difficult to devise and require constant monitoring. In this specific case, most licensing-related commitments on Oracle's part would be entirely, or almost entirely, ineffectual. Only very far-reaching commitments could have any effect, and even those would not achieve the objective of sustaining MySQL as a major force in the market."
Could it have been stated any more clearly? I never advocated an "un-GPL'ing" of MySQL as a solution. I wanted MySQL to continue under the GPL, but not under Oracle's stewardship.

Apart from that, the European Commission could never have imposed a license change unilaterally on Oracle. EU law doesn't allow them to do that in a merger case. The way it works is that a deal is proposed, and if the regulators have no concerns, they clear it. If they have concerns, they may ultimately block it (in which case Oracle would have had to walk out on the deal with Sun).

In most cases where there are concerns, the acquirer will propose possible solutions to the Commission, which will always only say "we have a deal" or "we still have concerns". So it would have been completely up to Oracle to propose a license change. The Commission would not even have been allowed to tell Oracle "if you switch from GPL to ASL, you got a deal." Therefore, a forcible license change wouldn't even have been possible. Moreover, we would never have been invited to any meeting in which Oracle would have proposed remedies to the Commission. We weren't in a position to negotiate with anyone.

I'd like to point out that I have no intention at all to restart the debate over Oracle and MySQL. Ultimately, all regulatory agencies (EU and elsewhere) approved the acquisition. I respect those decisions. I'm not involved with Monty's appeal against the European Commission's clearance decision. I just wanted to set the record straight on where I stand concerning the GPL.

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.