In May, the United States Court of Appeals for the Federal Circuit issued a decision in Oracle America, Inc. v. Google, Inc., holding that certain aspects of Oracle’s Java software were copyrightable. The case dealt with several different pieces of code alleged to be infringed, but of particular interest is the appellate court’s analysis of the copyrightability of 37 packages of application programming interfaces, “API packages,” and of the verbatim copying by Google of nine lines of Java code.
No Small Amount of Software Can Be Copied Without Risking Infringement
One of the items that Google was alleged to have infringed upon was Oracle’s copyright in nine lines of code that made up a discrete function in the Android program. The district court found that the two engineers that had originally written the Java code later worked for Google and contributed the nine lines of code to the Android platform.
Google argued that its verbatim copying of those nine lines of code was too insignificant to amount to infringement on its own. To put it in perspective, the copied code was only nine lines out of 2,800,000 (approximately .000321% of the code) in the various Java packages at issue (a subset of the entire Java platform, of which it would be a far smaller percentage).
However, the appellate court rejected that argument, stating that there is no “minimum number of lines of code that must be copied before a court can find infringement.” This may prove to be very useful to software developers contending that a third party has copied their code, and very frustrating to defendants accused of copying a few lines of code in a much larger program. If there is no copying too small to be infringing, it may make it much easier for copyright holders to bring a cognizable claim asserting that a small amount of code was copied by a third party.
Structure, Sequence and Organization of Code Can Be Protected
A major issue in the case was whether Google had infringed Oracle’s copyright by copying the “declaring source code” and the “structure, sequence and organization” (SSO) of the 37 API packages. Essentially the API packages are code that allows computers to execute common tasks and communicate with each other. The “declaring code” is the language that identifies the pre-written function – namely, it’s the code used by the programmer to call up the API and to command the computer to execute associated “implementing code,” which carries the more detailed instructions for the specific function.
Google developed the Android platform, which included 168 API packages, and had its own implementing code. However, as part of the 168 API Packages, Google used 37 API packages that corresponded to the existing JAVA API packages. The district court provided the analogy that “Oracle’s collection of API packages is like a library, each class is like a book on the shelf, and each method is like a how-to chapter in a book.” In total, Google copied about 7,000 lines of declaring source code from the corresponding 37 Java API packages including the “elaborately organized taxonomy of all the names of methods, classes, interfaces, and packages.”
This system of taxonomy was referred to by the court as the “structure, sequence and organization” (SSO) of the 37 API packages. Software, by its nature, conflates the distinction between words and function. This appears to be the root of the dispute between Oracle and Google with regard to the 37 API packages. In broad strokes, one of Google’s arguments was that the simple commonplace words used to create these 37 API packages that identify and trigger each specific function are precluded from copyright protection as “functional” or an unprotectable “system.” Under Section 102(b) of the Copyright Act, copyright does not extend to any “system” or “method of operation.” Essentially, among other arguments, Google asserted that because this code was a language already known by programmers, which served the utilitarian feature of calling up the implementing code and allowing the programs to communicate with each other, it should not be subject to copyright.
The court, however, disagreed with Google and held this “structure, sequence and organization” of the 37 API packages was copyrightable. The court reasoned that because “the SSO is original and creative, and that the declaring code could have been written and organized in any number of ways and still have achieved the same functions, we conclude that [the Copyright Act] does not bar the packages from copyright protection just because they also perform functions.”
The appellate court sent the case back to the trial court to determine whether Google’s use was nonetheless allowed as fair use. It will be interesting to see how this plays out. The Federal Circuit’s decision is a very strong decision in favor of copyright protection for software. It may still be that Google is able to assert a successful fair use defense with regard to the 37 API packages. Even if it is, though, this decision will make it easier for copyright holders to assert claims of infringement arising out of software, more easily get the case before a jury (and past summary judgment), and force defendants to rely on a fact-intensive fair use defense. It may also slow the adoption of standardized APIs, since a developer is more likely to be able to assert that its APIs are proprietary and cannot be used by another entity. In the near term, this ruling is likely to cause more litigation asserting copyright infringement of software, drive up costs for the creation of new software, and strengthen claims of copyright holders.
Posted by Jason Sanders Law PLLC