Addressing the boundaries of a permanent injunction awarded to a major software developer, the US Court of Appeals for the Ninth Circuit largely agreed that the defending developer was in contempt for violating the order but reversed on certain issues where the district court overextended the injunction. Oracle USA, Inc. v. Rimini St., Inc., Case No. 22-15188 (9th Cir. Aug. 24, 2023) (Bybee, Bumatay, JJ.; Bennett, Dist. J., sitting by designation).
Oracle creates enterprise software to carry out business functions. Oracle’s customers buy licenses to its products, which require updates and technical support. These necessary support services can be outsourced to third-party vendors, such as Rimini.
This case is the byproduct of a 13-year battle that Oracle initiated on the grounds that Rimini’s support services constituted copyright infringement. Rimini made generic versions of Oracle software on Rimini computers to develop updates and bug fixes (local hosting) and supported clients by using development environments created pursuant to a different client’s license (cross-use). After multiple appeals and remands, the case resulted in a permanent injunction prohibiting Rimini from reproducing or cross-using Oracle software unless pursuant to a customer license. Rimini revamped its support services and sought a declaratory judgment of noninfringement. After Oracle was permitted to conduct discovery into potential violations of the injunction, the district court held a bench trial on 10 possible violations. The district court found Rimini in contempt for five of the 10 alleged violations (issues 1–4 and 8). On two others (issues 7 and 9), the district court found no contempt but enjoined Rimini from continuing a specific copying practice. The district court sanctioned Rimini $630,000, calculated according to statutory damages available under the Copyright Act.
Rimini appealed each contempt finding, the injunction and the sanctions.
First, the Ninth Circuit addressed the five contempt findings, sorted into three groups:
- Local hosting (issue 1)
- Cross-use (issues 2–4)
- Database copying (issue 8).
On issue 1, the Ninth Circuit affirmed. The lower court had found that Rimini received copyrighted files from its clients. Instead of following internal policies requiring them to quarantine or report these files, Rimini employees forwarded and saved them locally. Based on the plain language of the PI, this was a clear violation.
On issues 2–4, regarding cross-use, the Ninth Circuit also affirmed. Rimini used one client’s environment to modify and test updates that the client did not need and were intended for other clients. Since the injunction specifically prohibited cross-use, this was a violation. Rimini lodged multiple failed arguments, including that the injunction only prohibited cross-use in “generic” (non-client) environments, so its use of one client’s environment to support another client was allowed. The Court disagreed that the injunction was so specific.
On issue 8 (database copying), however, the Ninth Circuit reversed. The district court held Rimini in contempt for making copies of an Oracle database file on Rimini systems. When the client uploaded the file to Salesforce for Rimini to provide technical assistance, a copy was automatically created on Rimini’s system. Here, the Court agreed with Rimini that its actions were authorized by Oracle’s software licenses that allow customers’ contractors “to use” the program to troubleshoot. “Rimini reasonably explains that the distinction between using the software and copying the software makes little sense in this context.”
After addressing contempt, the Ninth Circuit turned to issues 7 and 9, related to de minimis copying. Rimini included “snippets” of non-functional Oracle source code as markers for its employees in internal documents used for updating client software. The district court held that reproducing these snippets was a violation of the injunction but did not hold Rimini in contempt because the copying was de minimis. The Court noted that de minimis copying is not a violation of the Copyright Act. While otherwise legal actions may be prohibited by a permanent injunction, the Court found it “hard to see” the need to prohibit Rimini from reproducing nonfunctional portions of source code at the PI stage. To do so “would be overly burdensome, hamstringing Rimini’s ability to perform its authorized third-party support services.” Thus, the Court vacated that aspect of the injunction.
Finally, the Ninth Circuit considered the sanctions award and found no abuse of discretion because the amount was appropriately compensatory, not “impermissibly punitive” as Rimini claimed. Nonetheless, the Court vacated and remanded for recalculation considering the issue 8 reversal.
Practical Note: Parties operating under the restrictions of a PI should carefully follow the letter of the order but not fret potential contempt holdings for peripheral conduct not distinctly prohibited by the injunction.