Oh what a tangled web of FOSS they weave…
Google beats Oracle—Android makes “fair use” of Java APIs
Oracle has spent many millions trying to get a chunk of Android, to no avail.
by Joe Mullin – May 26, 2016 8:03pm UTC
Oracle just lost a $9 BILLION suit against Google (aka “Alphabet” these days). At first I didn’t think much about it, then the news pointed out it was over the API of Java. The Application Programming Interface is basically how programs talk to one another. It is typically published so that programmers know how to write programs that use that blob of code. All sorts of things all over the place have an API. To talk to a database, a computer language has an “API” into it. In Java, it’s a little bit different, since the Java language runs on a “virtual machine” inside the Java Engine, and is written in chunks called classes (of objects) and grouped in “java beans”. These things have an API as well. Google wrote their own versions of the code from scratch, but did use the same interface (otherwise it would not work with others… and Sun required things work even to the point of suing Microsoft for an incompatible version. See below.)
Typically, folks copyright their software they wrote, but really want others to use it, so the API is simply published.
I was stuck wondering why in the heck Oracle would be suing over use of the API?! IF the API of things being used started to cause suits for copyright in infringement, most programming would come to a screeching halt until folks found ways to use only FOSS Free Open Source Software for everything… If, for example, I wrote a database data entry program using SQL, and the API was subject to suit, I could be sued by whoever first wrote an SQL product, despite my using a FOSS version like MySQL. Not good. IMHO a large chunk of the software world would crash to a halt and fall to the ground in one fat splat until all this got sorted out. Would everyone writing FORTRAN be subject to suit by IBM? Could AT&T sue anyone using C? In some ways it would be like claiming to own the placement of gas pedal and steering wheel in a car…
A prior ruling had said Google DID violate the copyright, this one was to determine payment… IMHO, rightly, the jury decided it was “fair use”.
SAN FRANCISCO—Following a two-week trial, a federal jury concluded Thursday that Google’s Android operating system does not infringe Oracle-owned copyrights because its re-implementation of 37 Java APIs is protected by “fair use.” The verdict was reached after three days of deliberations.
“Ladies and gentlemen of the jury, listen to your verdict as it will stand recorded,” said the court clerk, before polling each of the ten men and women on the jury.
There was only one question on the special verdict form, asking if Google’s use of the Java APIs was a “fair use” under copyright law. The jury unanimously answered “yes,” in Google’s favor. The verdict ends the trial, which began earlier this month. If Oracle had won, the same jury would have gone into a “damages phase” to determine how much Google should pay. Because Google won, the trial is over.
“I salute you for your extreme hard work in this case,” said US District Judge William Alsup, who has overseen the litigation since 2010. “With the thanks of your United States District Court, you are now discharged. I would like to come in the jury room and shake each of your hands individually.”
Four of the ten jurors declined to comment to reporters gathered in the hallway. The other six went out through a back exit.
“We’re grateful for the jury’s verdict,” said Google lead lawyer Robert Van Nest before getting into the elevator with Google’s in-house lawyers. “That’s it.” Oracle attorneys had no comment.
Google said in a statement that its victory was good for everybody. “Today’s verdict that Android makes fair use of Java APIs represents a win for the Android ecosystem, for the Java programming community, and for software developers who rely on open and free programming languages to build innovative consumer products,” a Google spokesperson said via e-mail.
Oracle, however, vowed to appeal.
“We strongly believe that Google developed Android by illegally copying core Java technology to rush into the mobile device market. Oracle brought this lawsuit to put a stop to Google’s illegal behavior. We believe there are numerous grounds for appeal and we plan to bring this case back to the Federal Circuit on appeal,” Dorian Daley, Oracle’s general counsel, said in a statement.
Google’s win somewhat softens the blow to software developers who previously thought programming language APIs were free to use. It’s still the case that APIs can be protected by copyright under the law of at least one appeals court. However, the first high-profile attempt to control APIs with copyright law has now been stymied by a “fair use” defense.
So on the one hand, as a programmer, I too think that APIs are “free to use” as that is substantially what programming is all about. Using Application Programming Interfaces to get things done. IMHO the first verdict, that they are subject to copyright, was in error due to the mess it makes… But at least now they have sort of fixed it… You can copyright it, but the damages for using it are zero…
But wait, there’s more…
Java was originally made by Sun Microsystems. Sun was bought by Oracle. Oracle was trying to wring money out of that purchase, but Sun had put much of Java into the FOSS world already… The suit over the API was in some ways just looking for what bit had NOT been explicitly set free and hanging a suit onto it.
See also: Free Java implementations
Oracle Corporation is the current owner of the official implementation of the Java SE platform, following their acquisition of Sun Microsystems on January 27, 2010. This implementation is based on the original implementation of Java by Sun. The Oracle implementation is available for Microsoft Windows (still works for XP, while only later versions currently “publicly” supported), Mac OS X, Linux and Solaris. Because Java lacks any formal standardization recognized by Ecma International, ISO/IEC, ANSI, or other third-party standards organization, the Oracle implementation is the de facto standard.
The Oracle implementation is packaged into two different distributions: The Java Runtime Environment (JRE) which contains the parts of the Java SE platform required to run Java programs and is intended for end users, and the Java Development Kit (JDK), which is intended for software developers and includes development tools such as the Java compiler, Javadoc, Jar, and a debugger.
OpenJDK is another notable Java SE implementation that is licensed under the GNU GPL. The implementation started when Sun began releasing the Java source code under the GPL. As of Java SE 7, OpenJDK is the official Java reference implementation.
The goal of Java is to make all implementations of Java compatible. Historically, Sun’s trademark license for usage of the Java brand insists that all implementations be “compatible”. This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001 won a settlement of US$20 million, as well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Java with Windows.
Note well that “OpenJDK” version… It matters. A Lot.
After the May 2007 code release
See also: OpenJDK
Ambox current red.svg
This section is outdated. Please update this article to reflect recent events or newly available information. (January 2014)
As of May 2008, the only part of the Class library that remains proprietary (4% as of May 2007 for OpenJDK 7,  and less than 1% as of May 2008 in OpenJDK 6) is the SNMP implementation.
Since the first May 2007 release, Sun Microsystems, with the help of the community, has released as free software (or replaced with free-software alternatives) almost all the encumbered code:
All the audio engine code, including the software synthesizer, has been released as open-source. The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called Gervill,
All cryptography classes used in the Class library have been released as free software,
FreeType has replaced the code that scales and rasterizes fonts.
LittleCMS has replaced the native color-management system. There is a pluggable layer in the JDK, so that the commercial version can use the old color management system and OpenJDK can use LittleCMS.
The open-sourced Pisces renderer used in the phoneME project has replaced the anti-aliasing graphics rasterizer code. This code is fully functional, but still needs some performance enhancements,
Because of these previously encumbered components, it was not possible to build OpenJDK only with free software components. In order to be able to do this before the whole class library is made free, and to be able to bundle OpenJDK in Fedora Core and other free Linux distributions, Red Hat has started a project called IcedTea. It is basically an OpenJDK/GNU Classpath hybrid that can be used to bootstrap OpenJDK using only free software.
As of March 2008, the Fedora 9 distribution has been released with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Some of the stated reasons for this change are:
Sun has replaced most of the encumbrances for which IcedTea was providing replacements (less than 1% of encumbered code remains in the class library, and this code is not necessary to run OpenJDK).
OpenJDK 6 is a stable branch, whereas OpenJDK 7 is unstable and not expected to ship a stable release until 2009.
Sun has licensed the OpenJDK trademark for use in Fedora.
In June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK on Fedora 9) had passed the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation.
In September 2013, Azul Systems released Zulu, a free, open source build of OpenJDK for Windows Server and the Microsoft Azure Cloud. Later releases added support for Mac OS X, multiple versions of Linux and the Java Platform, Standard Edition version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the OpenJDK Community Technology Compatibility Kit.
So Sun was busy turning Java free, and then Oracle tried to reel it back in again… Bad Oracle!
Google has announced that they are now shipping on OpenJDK. Prior they had been using their own code implimenting the original Java API. BUT, had not bothered to get an original Java license. Essentially, they were not under either the proprietary licence nor under the GPL license. Turns out, this too might matter. The GPL requires that you set free code written using it. So Google could keep Android (parts of it anyway) private and proprietary as long as they didn’t do the GPL. Yet didn’t get a Java license from Oracle / Sun… Bad Google!
This guy covers the legal niceties fairly well:
Wednesday, December 30, 2015
Google switches to open-source license for Java APIs in Android: will this limit Oracle’s case to past damages?
It looks to me like it was not just to limit damages to the past, but perhaps also to demonstrate to the jury that the “damages” were worthless as theere was a free version. I.e. Oracle was shouting $9 Billion for something freely available… so likely not really worth $9 billion…
I’ve seen comments on Internet discussion boards according to which the long-running Oracle v. Google copyright infringement dispute has been practically settled, given that Google has just confirmed to VentureBeat that its upcoming release of Android (Android N) will come with Java language libraries that follow “an OpenJDK-based approach.” The OpenJDK is licensed by Oracle under the GPLv2 with a so-called Classpath Exception.
It’s too early to agree with those who believe it’s a virtual settlement (except that damages for past infringement might still have to be determined in court). I do remember that Oracle’s lawyers released a statement ahead of the 2012 trial in which they basically said that Google had two options for using Java in Android–a proprietary license or using it on open source terms with the obligation to contribute back to the open source community–but, by simply using Java without either kind of license, Google had committed copyright infringement. That was more than three-and-a-half years ago. Why wouldn’t Google have taken this step long before, if such a seemingly simple solution to the legal problem as OpenJDK had existed all along?
There are two possibilities:
It could be that Google is now (that Android has unstoppable momentum) indeed fine with GPL’ing all of Android and just wanted to avoid it earlier on. Android already uses Linux, which is available under only the GPL (no proprietary option there). Now it’s also going to use the OpenJDK libraries. So maybe Google doesn’t care about applying copyleft–the rule that derivative works incorporating GPL-licensed code must also be published under the GPL (or they must not be published at all)–to Android as a whole. It previously preferred the Apache Software License, which gave Google and its partners more flexibility in terms of throwing closed-source components into the Android mix.
Without knowing how Oracle views this and what Oracle will do, I consider a second possibility no less likely than the first one. It could be that Google still isn’t going to put Android as a whole under the GPL. Maybe Google interprets the copyleft rule in the GPL (in this case, in conjunction with the Classpath Exception) in a way that differs from the way Oracle would interpret it. Maybe Google believes it can just replace those Java APIs with something based on the OpenJDK but still doesn’t have to put any additional components of Android under the GPL. In that case, Oracle would likely disagree. And that disagreement could then give rise to another lawsuit.
In any case, the jury has now decided that the API can be copyrighted, but the use of it is “fair use”. Reasonable, in a way.
Oracle wants to take all this to the Supreme Court. I suspect they will look at that “Sun setting it free” history and decide to just leave things as they are. OTOH, a good slap up side the head to Google for not bothering to just get a FOSS version in the first place would be a show worth watching. But I’d be most happy if they just tossed out the API copyright… But I’m OK with “you can copyright it, but since the purpose is to have folks learn and use it, the price is zero”…
I never really liked Java, and would not really mind if everyone just stopped using it. I know that will never happen, especially now that there are entirely FOSS versions of it. OTOH, it is fun to watch the two biggest parties in the Java Pot busy pissing on each other… ;-) I’m just glad as a non-Java programmer, I’m standing well off to the side…