The basic question “are APIs eligible for copyright protection?” has consumed much analysis (and legal fees) during the lawsuit between Oracle and Google, which started in 2010. (For more reading on our long-running coverage of the long-running Oracle vs. Google patent and copyright litigation, see below.)
The basic premise of Oracle’s complaint against Google is that the wildly popular Android operating system copied 37 Java API packages verbatim, and inserted the code from those APIs into the Android software. This copying was done without a license from Oracle. Therefore, says Oracle, copyright infringement has occurred. In a 2012 decision, the district court decided that the Java APIs were not subject to copyright protection. Therefore, said the lower court, there was no infringement. The US Federal Court of Appeals has reversed that finding.
In a 69-page decision released on May 9, 2014, the appeal court has decided that these Java APIs are subject to copyright protection, and concluded as follows: “Because we conclude that the declaring code and the structure, sequence, and organization of the API packages are entitled to copyright protection, we reverse the district court’s copyrightability determination with instructions to reinstate the jury’s infringement finding as to the 37 Java packages. Because the jury deadlocked on fair use, we remand for further consideration of Google’s fair use defense in light of this decision.”In short, Google has infringed Oracle’s copyright, and the question to be determined now is whether Google has a “fair use” defense to that infringement.
The EFF has called the decision dangerous since it exposes software developers to copyright infringement lawsuits. However, for software vendors, it may help strengthen the controls they place on developers to maintain standards and cross-compatibility through licensing. After all, that was (in theory) one of the complaints raised by Oracle - that its “write once, run anywhere” Java principle was violated when Google mis-used the Java APIs to essentially bring Android out of compatibility with the Java platform.