Oracle USA, Inc. v. Rimini Street, Inc.

FOR PUBLICATION UNITED STATES COURT OF APPEALS FOR THE NINTH CIRCUIT ORACLE USA, INC.; ORACLE No. 22-15188 AMERICA, INC.; ORACLE INTERNATIONAL CORPORATION, D.C. No. 2:10-cv-00106- Plaintiffs-Appellees, LRH-VCF v. RIMINI STREET, INC., OPINION Defendant-Appellant. Appeal from the United States District Court for the District of Nevada Larry R. Hicks, District Judge, Presiding Argued and Submitted February 6, 2023 San Francisco, California Filed August 24, 2023 Before: Jay S. Bybee and Patrick J. Bumatay, Circuit Judges, and Richard D. Bennett, * Senior District Judge. Opinion by Judge Bumatay * The Honorable Richard D. Bennett, United States Senior District Judge for the District of Maryland, sitting by designation. 2 ORACLE USA, INC. V. RIMINI STREET, INC. SUMMARY ** Civil Contempt The panel affirmed in part, reversed in part, and vacated in part the district court’s order holding Rimini Street, Inc., in civil contempt and imposing sanctions for violations of a permanent injunction in copyright infringement litigation between Rimini and Oracle USA, Inc. The permanent injunction generally prohibited Rimini from reproducing, preparing derivative works from, or distributing certain Oracle software. The district court identified ten potential violations of the permanent injunction (Issues 1–10), and held Rimini in contempt on five (Issues 1-4, 8). The panel affirmed the district court’s finding of contempt on Issues 1-4. The panel held that the district court did not abuse its discretion in holding Rimini in contempt for hosting Oracle files on its computer systems (Issue 1). The panel declined to adopt the test set in TiVo Inc. v. EchoStar Corp., 646 F.3d 869 (Fed. Cir. 2011) (en banc) (holding that, in a patent infringement case, the district court must determine whether a company’s new devices were more than colorably different from the original infringing ones before deciding whether the company engaged in new infringing activity in a contempt proceeding). The panel also held that the district court did not abuse its discretion in finding Rimini in contempt for violating the injunction against the ** This summary constitutes no part of the opinion of the court. It has been prepared by court staff for the convenience of the reader. ORACLE USA, INC. V. RIMINI STREET, INC. 3 “cross use” of development environments (Issues 2, 3, and 4). Reversing the finding of contempt on Issue 8, the panel held that the district court abused its discretion in holding Rimini in contempt for creating copies of an Oracle Database file on its systems. On Issues 7 and 9, the district court concluded that Rimini did not violate the permanent injunction but ruled that Rimini was not permitted to copy even snippets or partial segments of Oracle source code. The panel vacated the district court’s order on Issues 7 and 9 to the extent it read the permanent injunction to enjoin de minimis copying. The panel held that the district court did not abuse its discretion or impose an impermissibly punitive sanctions award for each of six willful and one non-willful contempt findings. Given the reversal on Issue 8, however, the panel vacated and remanded the sanctions award for recalculation. 4 ORACLE USA, INC. V. RIMINI STREET, INC. COUNSEL Mark A. Perry (argued), Weil Gotshal & Manges LLP, Washington, D.C.; Jeremy M. Christiansen, Gibson Dunn & Crutcher LLP, Washington, D.C.; Samuel G. Liversidge, Ilissa S. Samplin, and Casey J. McCracken, Gibson Dunn & Crutcher LLP, Los Angeles, California; Blaine H. Evanson, Gibson Dunn & Crutcher LLP, Irvine, California; Joseph A. Gorman, Gibson Dunn & Crutcher LLP, San Francisco, California; West Allen, Howard & Howard, Las Vegas, Nevada; Eric D. Vandevelde; United States Attorney’s Office, Los Angeles, California; for Defendant-Appellant. Raechel K. Kummer (argued) and David B. Salmons, Morgan Lewis & Bockius LLP, Washington, D.C.; Benjamin P. Smith and Sharon R. Smith, Morgan Lewis & Bockius LLP, San Francisco, California; Dorian E. Daley, Peggy Bruggman, and James C. Maroulis, Oracle Corporation, Redwood City, California; Paul D. Clement, Erin E. Murphy, and Matthew Rowen, Clement & Murphy PLLC, Alexandria, Virginia; Karen L. Dunn and William A. Isaacson, Paul Weiss Rifkind Wharton & Garrison LLP, Washington, D.C.; Richard J. Pocker, Boies Schiller & Flexner LLP, Las Vegas, Nevada; Beko O. Reblitz- Richardson, Boies Schiller & Flexner LLP, San Francisco, California; for Plaintiffs-Appellees. ORACLE USA, INC. V. RIMINI STREET, INC. 5 OPINION BUMATAY, Circuit Judge: This civil contempt dispute is fallout from the protracted copyright infringement litigation between Oracle USA, Inc. and Rimini Street, Inc.—now in its thirteenth year. In the underlying case, the district court entered a permanent injunction that enjoined Rimini from various infringing practices. Years later, the district court identified ten potential violations of the permanent injunction (“Issues 1– 10”), and ultimately held Rimini in contempt on five. Rimini was ordered to pay $630,000 in statutory sanctions, plus attorneys’ fees. On appeal, Rimini argues that the contempt order should be reversed and that the sanctions should be vacated. We affirm the district court’s finding of contempt on Issues 1–4, reverse on Issue 8, and vacate the district court’s order on Issues 7 and 9 to the extent it reads the permanent injunction to enjoin de minimis copying. We vacate and remand the sanctions award to Oracle for recalculation. I. Oracle owns and develops copyrighted software for large organizations. Oracle’s enterprise software products help organizations perform various business functions, such as human resources, payroll, taxes, shipping, and customer relations. Businesses and organizations purchase licenses to use specific programs and the products can be customized to accommodate their needs. At issue here are four of Oracle’s software programs: PeopleSoft, Siebel, J.D. Edwards, and Oracle Database. 6 ORACLE USA, INC. V. RIMINI STREET, INC. Oracle’s enterprise software products require ongoing updates and technical support. For example, an update may reflect changes to regulations or the tax code. So along with a licensing fee, Oracle’s licensees may pay an additional fee for software upgrades and support. They may also outsource support services to third parties, like Rimini. Rimini is Oracle’s largest competitor for its software support services. Rimini supports and maintains Oracle- licensed software products for thousands of clients. Rimini’s clients include many Fortune 500 companies, universities, governments, and hospitals. Co-defendant Seth Ravin serves as the CEO of Rimini. A. Process 1.0 and Rimini I In 2010, Oracle sued Rimini for copyright infringement of its PeopleSoft, J.D. Edwards, Siebel, and Oracle Database software. Oracle alleged that Rimini’s support process for its clients, known as Process 1.0, violated Oracle’s copyrights by “local hosting” and “cross using” Oracle’s products. “Local hosting” refers to Rimini creating “generic” Oracle software development environments on Rimini’s local computer systems to develop and test software updates and fixes for clients’ Oracle products. Once perfected, Rimini would then deliver the updates and fixes to a client’s “live” environment, run on the client’s systems. “Cross use” refers to Rimini creating a development environment under the license of one client to support other clients. In response to Oracle’s suit, Rimini argued that each of its clients held a valid Oracle license and no client received a benefit it wasn’t entitled to. But in Oracle’s view, even ORACLE USA, INC. V. RIMINI STREET, INC. 7 when clients hold identical licenses, cross use isn’t permitted. Generally, Oracle believed its licenses required Rimini to perform work for each client only in the development environment for that client. In 2014, the district court granted partial summary judgment to Oracle on aspects of the copyright claims. See Oracle USA, Inc. v. Rimini St., Inc., 6 F. Supp. 3d 1086, 1107 (D. Nev. 2014). And in 2015, a jury sided with Oracle on the rest of its copyright infringement claims against Rimini. The jury awarded Oracle $35.6 million in damages on a hypothetical license theory. The jury also found for Oracle on two state-law claims. The district court further assessed costs, attorneys’ fees, and prejudgment interest against Rimini. And the district court entered a permanent injunction against Rimini based on the copyright and state- law claims, enjoining the company from infringing Oracle’s PeopleSoft, J.D. Edwards, Siebel, and Oracle Database copyrights. The Ninth Circuit affirmed the judgment on the copyright infringement claims and the costs award. Oracle USA, Inc. v. Rimini St., Inc., 879 F.3d 948, 953 (9th Cir. 2018) (“Rimini I”). We reversed the state-law claims, however, and vacated the injunction for reconsideration under only the copyright claims. Id. at 964. The Supreme Court later reversed on the meaning of “costs.” Rimini St., Inc. v. Oracle USA, Inc., 139 S. Ct. 873, 875–76 (2019). B. The Permanent Injunction After that appeal, the district court granted Oracle’s renewed motion for a permanent injunction in 2018. Rimini appealed the issuance of the permanent injunction. In an 8 ORACLE USA, INC. V. RIMINI STREET, INC. unpublished decision, we affirmed the grant of the permanent injunction except as to two aspects of the order, which we held were overbroad. See Oracle USA, Inc. v. Rimini St., Inc., 783 F. App’x 707, 710 (9th Cir. 2019) (unpublished) (“Rimini Injunction Appeal”). We first struck the provision enjoining “local hosting” of the J.D. Edwards and Siebel software programs because those products’ licenses did not prohibit it. Id. at 710–11. We also struck the provision enjoining “access” to Oracle’s source code because “accessing” copyrighted work is not infringing activity under the Copyright Act. Id. at 711 (citing 17 U.S.C. § 106 (2002)). Generally, the operative permanent injunction provides that “Rimini Street shall not reproduce, prepare derivative works from, or distribute PeopleSoft, J.D. Edwards, or Siebel software . . . unless solely in connection with work for a specific customer that holds a valid, written license agreement for the particular PeopleSoft, J.D. Edwards, or Siebel software . . . authorizing Rimini Street’s specific conduct.” Permanent Injunction ¶ 2a. The permanent injunction has three relevant provisions related to PeopleSoft: • “Rimini Street shall not reproduce, prepare derivative works from, or use a specific licensee’s PeopleSoft software or documentation other than to support the specific licensee’s own internal data processing operations[.]” Id. ¶ 4. • “Rimini Street shall not reproduce, prepare derivative works from, or use PeopleSoft software or documentation ORACLE USA, INC. V. RIMINI STREET, INC. 9 on, with, or to any computer systems other than a specific licensee’s own computer systems[.]” Id. ¶ 5. • “Rimini Street shall not reproduce, prepare derivative works from, or use PeopleSoft software or documentation on one licensee’s computer systems to support, troubleshoot, or perform development or testing for any other licensee, including specifically, that Rimini Street shall not use a specific licensee’s PeopleSoft environment to develop or test software updates or modifications for the benefit of any other licensee[.]” Id. ¶ 6. As for J.D. Edwards, the permanent injunction states that “Rimini Street shall not copy or access J.D. Edwards software source code to carry out development and testing of software updates[.]” Id. ¶ 8. As for Oracle Database, the permanent injunction provides that “Rimini Street shall not reproduce, prepare derivative works from, or distribute Oracle Database software.” Id. ¶ 15. C. Process 2.0 and Rimini II In response to the district court’s 2014 summary judgment ruling, Rimini transitioned its client support process to “Process 2.0.” The transition involved two major changes: (1) switching from local-hosting to remote-hosting, and (2) switching from cross-used generic development 10 ORACLE USA, INC. V. RIMINI STREET, INC. environments to client-specific development environments. Process 2.0 requires Rimini’s clients to host development environments on their own systems, which Rimini can access remotely. Moreover, under Process 2.0, Rimini no longer locally hosts any Oracle environment on its own systems. The transition to Process 2.0 was completed before the 2015 trial in Rimini I. Rimini filed a new suit seeking a declaratory judgment that Process 2.0 was non-infringing on Oracle’s copyrights. See Complaint for Declaratory Judgment, Rimini St., Inc. v. Oracle Int’l Corp., No. 2:14-cv-01699 (D. Nev. Oct. 15, 2014) (“Rimini II”). Although Rimini sought to consolidate Rimini II with Rimini I, the district court denied the motion and the litigation proceeded on separate tracks. Rimini II is currently on appeal in our court. D. Contempt Proceedings in Rimini I In 2019, Oracle sought permission to conduct discovery to determine whether Rimini was complying with the permanent injunction. After 18 months of discovery, the district court identified ten potential violations and ordered Rimini to show cause why it should not be held in contempt for violating the permanent injunction. Following a seven-day bench trial, the district court held Rimini in contempt on five of the ten issues: Issue 1: Rimini possessed copies of copyrighted PeopleSoft files on Rimini’s local systems in three circumstances. ORACLE USA, INC. V. RIMINI STREET, INC. 11 Issues 2, 4: Rimini developed and tested a PeopleSoft update in a development environment for its client, City of Eugene, which was later delivered to clients Matheson Trucking, Spherion, and Smead. Issue 3: Rimini cross used the City of Eugene environment to solve a PeopleSoft bug related to the printing of W-2 forms for client Johnson Controls. Issue 8: Rimini copied an Oracle Database file received from its client, the Australian Bureau of Statistics. Oracle USA, Inc. v. Rimini St., Inc., No. 10-cv-00106, 2022 WL 112187, at *17–19, *25–26, *29–30, *48–49 (D. Nev. Jan. 12, 2022) (“Rimini Contempt Order”). For Issues 2, 3, 4, and 8, the district court found that Rimini “willfully” violated the permanent injunction. Id. at *34. On Issue 1, the district court found two willful violations and one non- willful violation. Id. On two more issues, Issue 7 and Issue 9, the district court concluded that Rimini did not violate the permanent injunction by copying “snippets” of Oracle source code from J.D. Edwards files because “de minimis copying” isn’t prohibited by the Copyright Act. Id. at *29–30. Even so, the district court ruled that “Rimini is not permitted to copy even snippets or partial segments of Oracle source code” and made clear that “[f]uture copying of this nature will result in 12 ORACLE USA, INC. V. RIMINI STREET, INC. the Court finding Rimini willfully violated the Permanent Injunction.” Id. at *30. For the sustained contempt charges, the district court ordered Rimini to pay Oracle $630,000 in sanctions. This represented $100,000 for each willful violation and $30,000 for the non-willful violation. The district court based these amounts on the statutory damages available under the Copyright Act. See 17 U.S.C. § 504(c). The district court also imposed attorneys’ fees and costs on Rimini. Rimini now appeals the contempt findings and the award of sanctions. II. We start by reviewing the five findings of contempt, which we group into three categories—local hosting (Issue 1), cross use (Issues 2–4), and Oracle Database copying (Issue 8). We then consider whether the district court properly enjoined Rimini from de minimis copying, even if it did not hold Rimini in contempt for such conduct (Issues 7 and 9). And finally, we examine the district court’s imposition of sanctions against Rimini. We review these issues for abuse of discretion. United States v. Washington, 761 F.2d 1419, 1421 (9th Cir. 1985); United States v. Bright, 596 F.3d 683, 694 (9th Cir. 2010). We accept the district court’s factual findings unless they are clearly erroneous. Dolman v. Agee, 157 F.3d 708, 715 (9th Cir. 1998). ORACLE USA, INC. V. RIMINI STREET, INC. 13 A. Contempt Findings 1. Issue 1: Local Hosting The district court did not abuse its discretion in holding Rimini in contempt for hosting Oracle files on its computer systems—Issue 1. The district court’s contempt finding turned on three instances in which Rimini possessed copyrighted PeopleSoft files on its local systems. In each case, Rimini’s clients emailed the PeopleSoft files to Rimini employees. In two instances, the Rimini client sent the copyrighted files unsolicited; in the third case, the client did not follow instructions to place files in a shared folder. In each case, Rimini employees did not immediately quarantine or report the files to Rimini’s security or compliance departments, as required by Rimini’s internal policies. In two cases, Rimini employees forwarded the copyrighted material to other employees and further saved the files on shared drives on Rimini’s computers. These two instances prompted the district court’s finding of a willful violation of the permanent injunction. The district court also noted three other incidents of copying of PeopleSoft files on Rimini’s local systems, but did not find them to be independent violations. The plain language of the permanent injunction prohibits Rimini from locally hosting PeopleSoft software on its systems. Paragraph 5 of the permanent injunction provides that “Rimini Street shall not reproduce, prepare derivative works from, or use PeopleSoft software or documentation on, with, or to any computer systems other than a specific licensee’s own computer systems[.]” The district court 14 ORACLE USA, INC. V. RIMINI STREET, INC. found that Rimini violated this part of the permanent injunction by “reproducing” PeopleSoft files on its local computer systems in these three circumstances. Rimini does not contest that it hosted PeopleSoft’s software on its computer systems, but asks this court to adopt the test set in TiVo Inc. v. EchoStar Corp., 646 F.3d 869 (Fed. Cir. 2011) (en banc), to reverse the contempt finding. There, the Federal Circuit held that, in a patent infringement case, the district court must determine whether a company’s “new devices [were] more than colorably different from the original [infringing] ones” before deciding whether a company engaged in new infringing activity in a contempt proceeding. Id. at 884. If there were “more than colorable differences between the two devices,” the Federal Circuit concluded that any challenge to the company’s new infringing product must be in a “new infringement proceeding”—not contempt proceedings. Id. Rimini argues that we should follow this out-of-circuit case and apply it to copyright law. Thus, Rimini contends that we should require the district court to determine whether Rimini’s Process 2.0 was “more than colorably different” from its prior Process 1.0 before holding Rimini in contempt. Notwithstanding the “historic kinship between patent law and copyright law,” Sony Corp. of Am. v. Universal City Studios, Inc., 464 U.S. 417, 439 (1984), we see no reason to apply TiVo to the facts presented here. As we understand it, the Federal Circuit’s motivation in adopting the Tivo test was to protect against the overuse of the “severe remedy” of contempt and ensure that it is not “resorted to where there is a fair ground of doubt as to the wrongfulness of the defendant’s conduct.” Tivo, 646 F.3d at 881–82 (quoting Cal. Artificial Stone Paving Co. v. Molitor, 113 U.S. 609, 618 (1885)). But our caselaw on contempt already provides ORACLE USA, INC. V. RIMINI STREET, INC. 15 robust safeguards for those accused of violating a copyright injunction. We forbid contempt sanctions when the contested action was “based on a good faith and reasonable interpretation” of the court’s order, when the contested action was in “substantial compliance” with the order, or when there was only a “technical violation” of the order. United States v. DAS Corp., 18 F.4th 1032, 1039 (9th Cir. 2021) (simplified). Moreover, the Federal Circuit adopted the TiVo test for the design of products, which that court held are subject to the “policy that legitimate design-around efforts should always be encouraged as a path to spur further innovation.” TiVo, 646 F.3d at 883. Here, it’s Rimini’s conduct that is subject to the district court’s permanent injunction. Such an injunction is proper if it restrains “acts which are of the same type or class as unlawful acts which the court has found to have been committed.” Orantes-Hernandez v. Thornburgh, 919 F.2d 549, 564 (9th Cir. 1990) (quoting NLRB v. Express Publ’g Co., 312 U.S. 426, 435 (1941)). Rimini contends that the type of local hosting here is different from the local hosting that compelled the permanent injunction—which involved copying “thousands of PeopleSoft files” onto Rimini’s systems as part of the standard support process for its clients. While the volume of copying at issue here is far less egregious than the original offending activity, we do not think the district court abused its discretion in finding a lack of substantial compliance with Paragraph 5 given the pattern of local-hosting incidents, the internal forwarding of copyrighted material, the lack of internal training, the failure to adequately warn its clients of the copying prohibition, the delays in quarantining the copyrighted software, and the general failure to follow its 16 ORACLE USA, INC. V. RIMINI STREET, INC. own internal policies. We thus affirm the contempt finding on Issue 1. 2. Issues 2–4: Cross Use The district court did not abuse its discretion in finding Rimini in contempt for violating the injunction against the “cross use” of development environments—Issues 2, 3, and 4. For Issues 2 and 4, the district court found that Rimini employees had modified and tested a PeopleSoft tax form update known as “rsi940a.sqr” in the development environment for its client, the City of Eugene, even though the update was only sent to three other clients—Spherion, Smead, and Matheson Trucking. At the time Spherion and Smead reported problems with the tax program, Rimini could not access their development environments. Instead, a Rimini employee used the City of Eugene’s environment to modify and fix “rsi940a.sqr” despite nothing showing that the City had reported a problem with the program or that it otherwise needed the update. Rimini later sent the update to another client, Matheson Trucking, with no evidence showing that it was developed or tested in Matheson’s specific environment. For Issue 3, Rimini sought to fix a bug in its PeopleSoft W-2 tax software reported by its client, Johnson Controls. Rather than using Johnson Controls’ development environment, Rimini again used the City of Eugene’s environment to find a solution to the bug. According to the district court, Rimini then sent the W-2 fix only to Johnson Controls that year—not to any other client at the time, including the City of Eugene. ORACLE USA, INC. V. RIMINI STREET, INC. 17 The permanent injunction prohibits the “cross use” of the PeopleSoft program. Paragraph 4 requires that Rimini “not reproduce, prepare derivative works from, or use a specific licensee’s PeopleSoft software or documentation other than to support the specific licensee’s own internal data processing operations.” Paragraph 6 likewise prohibits Rimini from using the “PeopleSoft software or documentation on one licensee’s computer systems to support, troubleshoot, or perform development or testing for any other licensee.” It specifically establishes that “Rimini Street shall not use a specific licensee’s PeopleSoft environment to develop or test software updates or modifications for the benefit of any other licensee.” Rimini makes three arguments for why its conduct did not violate these provisions of the permanent injunction. None succeed. First, Rimini claims the use of the City of Eugene’s development environment to develop the two PeopleSoft updates did not constitute “cross use” as litigated in Rimini I. Rimini asserts that “cross use” in Rimini I involved Rimini’s use of a generic development environment hosted in its computer systems to support multiple clients. In contrast, the “cross use” in Issues 2–4 refers to using a remote-hosted, client-specific environment to support multiple other clients. But even if Rimini’s characterization of Rimini I is accurate, we had already broadly criticized “[a]ny work that Rimini performs under color of a license held by a customer for other existing customers.” Rimini I, 879 F.3d at 957. In such cases, we said that such work “cannot be considered work in support of that particular customer.” Id. And we said that prohibition would apply prospectively—“[t]he 18 ORACLE USA, INC. V. RIMINI STREET, INC. same logic applies to work Rimini performs for unknown, future customers.” Id. Indeed, we did not define “cross use” as myopically as Rimini in the first appeal to our court; we said that “cross use” is “the creation of development environments, under color of a license of one customer, to support other customers.” Id. at 956. Thus, it makes no difference whether the development environment was generic and locally hosted as in Rimini I or client-specific and remotely accessed as here. As the Supreme Court has instructed, a party cannot escape “civil contempt because the plan . . . which they adopted was not specifically enjoined.” McComb v. Jacksonville Paper Co., 336 U.S. 187, 192 (1949). Under our prior definition of “cross use” and the plain terms of the permanent injunction, Rimini violated the prohibition against the cross use of development environments. Second, Rimini argues that its conduct was covered by the licenses of each individual client. Take the City of Eugene. According to Rimini, the City has a license with Oracle that allows the City to provide access to and use of the PeopleSoft program to third parties. Rimini also claims its contract with the City requires it to provide regular PeopleSoft updates. From this, Rimini asserts it can use the City’s development environment for any client as long as it also uses it for the benefit of the City. Whatever the merit of this argument, there’s a problem with its application here: The district court found no evidence that Rimini created the two software updates for the City’s benefit. Indeed, it’s uncontested that the City never complained of the problems reported in Issues 2–4. While Rimini claims that it believed that the City would need the “rsi940a.sqr” update and that it was only an “accident of history” that the City didn’t ultimately need either update, the district court disbelieved ORACLE USA, INC. V. RIMINI STREET, INC. 19 that explanation. The district court found that, by the time Rimini created the “rsi940a.sqr” update in the City’s development environment, the company knew that the update was only required for clients operating in the U.S. Virgin Islands—not its clients nationwide like the City. Rimini Contempt Order, 2022 WL 112187, at *16. And the district court concluded that the record did not support that Rimini believed that the City would need the W-2 fix it developed for Johnson Controls. Id. at *18. Without any finding that Rimini used the City’s development environment for the benefit of the City, the City’s license doesn’t protect Rimini’s cross use. Finally, Rimini asserts that the district court’s contempt findings don’t meet the “clear and convincing” standard. See Ahearn ex rel. NLRB v. Int’l Longshore & Warehouse Union, Locs. 21 & 4, 721 F.3d 1122, 1129 (9th Cir. 2013) (holding that a contempt finding must be supported by “clear and convincing evidence”). But we don’t reverse a district court’s finding of contempt “unless [we have] a definite and firm conviction that the district court committed a clear error of judgment after weighing the relevant factors.” Peterson v. Highland Music, Inc., 140 F.3d 1313, 1323 (9th Cir. 1998) (simplified). Here, the record doesn’t show that the district court’s view of the facts was clearly erroneous. Instead, the record shows that Rimini repeatedly chose to access the City of Eugene’s development environment to modify PeopleSoft when other clients reported problems with the program. So we affirm the district court’s finding of contempt on Issues 2–4. 20 ORACLE USA, INC. V. RIMINI STREET, INC. 3. Issue 8: Oracle Database Copying On Issue 8, we do find an abuse of discretion. The district court held Rimini in contempt for creating copies of the Oracle Database file known as “prvtsidx.pbl” on its systems. This time, one of Rimini’s clients, the Australian Bureau of Statistics, sent the file to Rimini for help troubleshooting a technical problem. The Bureau uploaded the file to the SalesForce system, which created a copy of the file on Rimini’s system. A Rimini employee then clicked on the .zip file and opened the “prvtsidx.pbl” file, which then created additional copies of the Database file on Rimini’s systems. Rimini then used the file to diagnose the Bureau’s problem. The permanent injunction does not clearly prohibit Rimini’s copying of the Oracle Database file under the circumstances here. Paragraph 15 of the permanent injunction provides that “Rimini Street shall not reproduce, prepare derivative works from, or distribute Oracle Database software.” But, as the district court noted, “Paragraph 15 . . . does not prohibit all copying of Oracle Database, specifically, when copying of Oracle Database is necessarily done while Rimini is making permitted copies of other Oracle Enterprise Software.” Rimini Contempt Order, 2022 WL 112187, at *30. Thus, if Rimini’s actions were authorized by one of Oracle’s software licenses, it cannot be held in contempt. In this case, the Bureau holds an Oracle Database license, which was governed by the Oracle License and Service Agreement (“OLSA”). The OLSA permits the Bureau to allow its agents and contractors “to use” the program in “the furtherance of [its] internal business ORACLE USA, INC. V. RIMINI STREET, INC. 21 operations.” Another section of the OLSA permits the Bureau to make “copies” of the program, but it does not expressly allow the Bureau’s agents and contractors to make copies. Although the district court found that Rimini only used the “prvtsidx.pbl” file to “support” the Bureau’s “sole internal data processing operations,” it still held that Rimini acted outside the plain meaning of the OLSA. Rimini Contempt Order, 2022 WL 112187, at *31. The district court reasoned that, while the OLSA allowed the Bureau’s “third- party support providers,” like Rimini, to use the Database file, the agreement only allowed the Bureau to make copies of the software. Thus, the district court concluded that Rimini violated the OLSA by obtaining a copy of the “prvtsidx.pbl” file. We disagree. Rimini reasonably explains that the distinction between using the software and copying the software makes little sense in this context. Simply, one cannot “use” the Database software without also “copying” it, Rimini says. That’s because the very act of running an Oracle program necessarily creates a copy of the program. Evidence supports this view. As Oracle’s expert testified in a related context, Each time Rimini use[s] a[n] . . . environment, this use result[s] in the creation of ephemeral copies of Oracle software in the computer’s RAM. Such copies are necessarily created when software is used, because a computer-readable version of the software is loaded into the computer’s 22 ORACLE USA, INC. V. RIMINI STREET, INC. memory so that its instructions can be interpreted and acted upon by the computer. Rimini St., Inc. v. Oracle Int’l Corp., 473 F. Supp. 3d 1158, 1203 (D. Nev. 2020); see also id. at 1217 (“[I]t is impossible to use the software or create and test Rimini’s updates without making RAM copies of Oracle’s software.”). In contrast, Oracle offers no clear and convincing evidence that Rimini is wrong about how third-party software support works. And while Oracle now suggests that Rimini “could ‘use’ the software on its clients’ systems,” it is not apparent from the OLSA’s plain language that this location restriction was intended. Indeed, Oracle points to no location restriction in the OLSA. And a “restriction on the location of copies,” or “use” of “the software on its clients’ systems” does not avoid the creation of copies inherent with any “use.” Thus, we are not confident that the district court’s interpretation of the OLSA satisfies the standard for finding contempt. See DAS Corp., 18 F.4th at 1039 (no contempt “based on a good faith and reasonable interpretation” of the court’s order) (simplified). Oracle’s waiver argument similarly fails. Oracle contends that Rimini should be precluded from raising the OLSA defense to the contempt charge because it waived this point on appeal of the district court’s summary judgment ruling. Once again, we disagree. Previously, the district court granted Oracle summary judgment on its copyright infringement claim that “Rimini copied Oracle’s copyright protected software when it built development . . . environments for a number of Rimini customers using Oracle Database.” Rimini I, 879 F.3d at 960. On appeal, we held that Rimini waived the defense that the OLSA authorized Rimini’s actions. Id. But the contempt ORACLE USA, INC. V. RIMINI STREET, INC. 23 holding at issue is based on a different situation—here, Rimini’s client sent Rimini a copy of the Database for help in troubleshooting the program. As the district court acknowledged, this “situation . . . [was] strikingly different from that held unlawful on summary judgment.” Rimini Contempt Order, 2022 WL 112187, at *31. The district court also didn’t consider the OLSA defense argument precluded; the district court instead analyzed the OLSA issue anew. Under these facts, we see no waiver or preclusion of the OLSA defense. We thus reverse the district court’s finding of contempt on Issue 8. B. Interpretation of the Injunction Issues 7 and 9: De Minimis Copying We next address the district court’s resolution of Issues 7 and 9 even though the district court ultimately found no violation of the permanent injunction. For Issues 7 and 9, the district court analyzed Rimini’s copying of J.D. Edwards source code when it provided its clients tax and regulatory updates. For example, to provide client support for one J.D. Edwards update, Rimini created a “Technical Design Specification” document that contained “snippets” of Oracle source code. These “snippets” served as a “reference” to show where in the Oracle product Rimini developers should insert Rimini-created code when working for a particular client. In other words, the snippets of Oracle source code were markers used to identify where to place Rimini code. Often these markers contained elided portions—i.e., “……”—to avoid reproducing Oracle code. So in the end, the source code copied by Rimini was no more 24 ORACLE USA, INC. V. RIMINI STREET, INC. than a handful of letters, numbers, and symbols, as shown in bold below: VArpt_mnOrigRoth457b…………TH0=”0” Math N……….c To String ... ** Add code lines before the “If $CT3 <> $T3 OR” conditional block ** ... ** Add code before the “Write F06767 RECRCU code line ** All parties agree that these snippets of source code cannot be used to run the J.D. Edwards program and are not functional. All also agree that this source-code copying was “de minimis.” The district court concluded that this de minimis copying of J.D. Edwards source code implicated Paragraph 8 of the permanent injunction which instructs that “Rimini Street shall not copy J.D. Edwards software source code to carry out development and testing of software updates[.]” Although the district court found that Rimini violated the permanent injunction, it ultimately did not hold the company in contempt for Issues 7 and 9 because of the de minimis nature of the copying. It held that, because the Copyright Act does not prohibit de minimis copying, Rimini “could have had a good faith and reasonable belief that copying such a small amount of source code was permitted.” Rimini Contempt Order, 2022 WL 112187, at *30. Yet the district court then went further and warned Rimini that it could no ORACLE USA, INC. V. RIMINI STREET, INC. 25 longer copy de minimis portions of J.D. Edwards’ source code: The Court now makes clear that Rimini is not permitted to copy even snippets or partial segments of Oracle source code into a Technical Design Specification document. Future copying of this nature will result in the Court finding Rimini willfully violated the Permanent Injunction and sanctions of the highest order. Id. Rimini now challenges the district court’s reading of the permanent injunction to preclude de minimis copying of Oracle source code. 1. Before turning to the merits of this issue, we first address Oracle’s jurisdictional arguments. To begin, Oracle contends that Rimini cannot appeal the district court’s order on this issue because the court did not hold Rimini in contempt on Issues 7 and 9 and thus Rimini prevailed below. At first blush, Oracle makes a good point. We rarely review an appeal brought by the prevailing party. See United States v. Good Samaritan Church, 29 F.3d 487, 488 (1994) (“A party may not appeal from a judgment or decree in his favor, for the purpose of obtaining a review of findings he deems erroneous which are not necessary to support the decree.”). But that general rule has no force when an “adverse ruling can serve as the basis for collateral estoppel in subsequent litigation,” Ruvalcaba v. City of Los Angeles, 167 F.3d 514, 520 (9th Cir. 1999), or when the district court’s order may 26 ORACLE USA, INC. V. RIMINI STREET, INC. “bind [the appellant] in subsequent litigation,” Good Samaritan Church, 29 F.3d at 489. Here, the district court’s ruling would bind Rimini in future litigation and opens it up to sanctions if left unchallenged now. So the lack of a contempt finding does not preclude our review. Oracle also asserts that we lack appellate jurisdiction because the denial of contempt means there was no “final decision” under 28 U.S.C. § 1291. That is incorrect. As we have noted, “[m]ost post-judgment orders are final decisions within the ambit of 28 U.S.C. § 1291 as long as the district court has completely disposed of the [underlying] matter.” United States v. Ray, 375 F.3d 980, 987 (9th Cir. 2004) (quoting Sportmart, Inc. v. Wolverine World Wide, Inc., 601 F.2d 313, 316 (7th Cir. 1979)). Thus, “[i]f a motion for civil contempt is denied after the entry of the judgment which was the subject of the contempt, the denial is final and reviewable because no further district court action is necessary to give life to the denial.” DAS Corp., 18 F.4th at 1039 (quoting Sanders v. Monsanto Co., 574 F.2d 198, 199 (5th Cir. 1978)). And because the contempt order disposed of the only matter left before the district court, it is “final” under § 1291—even if it denied a finding of contempt on Issues 7 and 9. Because § 1291 confers our jurisdiction, we do not address the parties’ arguments under 28 U.S.C. § 1292(a)(1). 2. On the merits, we agree with Rimini that the district court’s interpretation of the permanent injunction was improper because Rimini’s de minimis copying here is not prohibited by the Copyright Act. As we’ve said, “[a]n overbroad injunction is an abuse of discretion.” Boardman v. Pac. Seafood Grp., 822 F.3d 1011, 1024 (9th Cir. 2016) (simplified). On direct appeal of the permanent injunction, ORACLE USA, INC. V. RIMINI STREET, INC. 27 we had struck a provision of the order enjoining actions that were not “an infringing activity under the Copyright Act.” Rimini Injunction Appeal, 783 F. App’x at 711 (striking a provision enjoining accessing source code because the Copyright Right permits “access”); see also 17 U.S.C. § 502(a) (injunctions may be granted “to prevent or restrain infringement of a copyright”). We follow the same path here. In this case, de minimis copying does not violate the Copyright Act. See, e.g., Bell v. Wilmott Storage Servs., LLC, 12 F.4th 1065, 1074 (9th Cir. 2021) (“[I]f the degree of copying is merely de minimis, then it is non-actionable” under the Copyright Act.); see also 4 Nimmer on Copyright § 13.03[A] (“[E]ven where the fact of copying is conceded, no legal consequences will follow from that fact unless the copying is substantial.” (quoting Newton v. Diamond, 388 F.3d 1189, 1193 (9th Cir. 2004))). Because the district court read the permanent injunction to prohibit Rimini from prospectively copying any de minimis portions of Oracle’s source code (which would not offend the Copyright Act), we vacate that part of the district court’s order. Oracle responds that injunctions may prohibit otherwise- legal conduct. See United States v. U.S. Gypsum Co., 340 U.S. 76, 88–89 (1950) (injunctions may cover acts “entirely proper when viewed alone” if doing so will prevent future violations). That may be true, but “‘[i]njunctive relief should be no more burdensome to the defendant than necessary to provide complete relief to the plaintiffs’ before the court.” Columbia Pictures Indus., Inc. v. Fung, 710 F.3d 1020, 1049 (9th Cir. 2013) (simplified). Here, it is hard to see the necessity in preventing Rimini from using non- functional snippets of source code solely as markers to identify where Rimini employees should work. Enjoining 28 ORACLE USA, INC. V. RIMINI STREET, INC. that conduct would be overly burdensome, hamstringing Rimini’s ability to perform its authorized third-party support services. Prohibiting de minimis copying like this would be like asking lawyers to conduct legal research without using pincites. Indeed, Oracle hasn’t argued that this type of de minimis copying is the harm that was previously adjudicated illegal, and it hasn’t provided clear and convincing evidence that using snippets of source code in this way will lead to future copyright violations. We thus vacate the portions of the district court’s order enjoining de minimis copying of the J.D. Edwards source code in Rimini’s “Technical Design Specification” documents. C. Sanctions Having affirmed four of five contempt findings, we now turn to the district court’s award of $630,000 in sanctions to Oracle. Recall the district court imposed the sanction of $100,000 for each of the six willful contempt findings and $30,000 for the one non-willful finding. Rimini argues that the sanctions award was impermissibly punitive and asks for it to be vacated. Under controlling case law, the district court didn’t abuse its discretion. “A court’s contempt powers are broadly divided into two categories: civil contempt and criminal contempt.” Shell Offshore Inc. v. Greenpeace, Inc., 815 F.3d 623, 628 (9th Cir. 2016). The main distinction between the two categories is their “character and purpose.” Id. at 629 (quoting Int’l Union, United Mine Workers v. Bagwell, 512 U.S. 821, 827 (1994)). Criminal contempt sanctions are “punitive”— meant to punish prior offenses. Id. (simplified). Generally, ORACLE USA, INC. V. RIMINI STREET, INC. 29 these punitive sanctions may not be imposed without the constitutional protections afforded ordinary criminal proceedings. See Int’l Union, 512 U.S. at 826–27 (listing “rights to notice of charges,” “assistance of counsel,” and in cases involving lengthy incarceration, “right to jury trial”). In contrast, the purpose of civil sanctions is to “coerce” compliance with a court order or to “compensate” the aggrieved party for sustained losses. Shell Offshore Inc., 815 F.3d at 629 (quoting United States v. United Mine Workers, 330 U.S. 258, 303–04 (1947)); see also Ahearn ex rel. NLRB, 721 F.3d at 1128 (“[C]ivil contempt proceedings serve two purposes: (1) coercing compliance with a court order; and (2) compensating the prevailing party.”). Unlike criminal contempt sanctions, generally “civil contempt sanctions are viewed as nonpunitive and avoidable, [and] fewer procedural protections for such sanctions have been required.” Int’l Union, 512 U.S. at 831. We find no abuse of discretion in the district court’s sanctions award. The district court expressly observed that the purpose of the $630,000 fine was “compensatory” and was “appropriate” to “sufficiently compensate Oracle for Rimini’s contemptuous conduct.” Rimini Contempt Order, 2022 WL 112187, at *34. So the district court’s findings track civil sanctions’ compensatory purpose. See Shell Offshore Inc., 815 F.3d at 629. The district court then based the sanctions amount on the statutory damages available under the Copyright Act, 17 U.S.C. § 504. We have already approved of the award of statutory damages in copyright contempt proceedings. See BMG Music v. Perez, 952 F.2d 318, 320 (9th Cir. 1991) (affirming a contempt sanction based on the statutory damages provision of § 504, noting the district court’s “wide discretion” in setting the amount of damages within the statutory range). The district court then 30 ORACLE USA, INC. V. RIMINI STREET, INC. correctly observed that § 504 permits statutory damages of not “more than $30,000” for a non-willful infringement and “not more than $150,000” for an infringement “committed willfully.” 17 U.S.C. § 504(c)(1)–(2). Thus, the $100,000 sanction for each willful violation and the $30,000 sanction for the non-willful violation fit acceptable statutory damages. Rimini argues the $630,000 award cannot be considered a civil contempt sanction because the district court did not give it a chance to “purge” the sanctions through compliance. Rimini fails to appreciate the two purposes of civil contempt sanctions—compensation and coercion. It is true that for sanctions meant solely to cajole compliance with a district court’s order, the sanctions may be “purged” once the contemnor has come into compliance. Shell Offshore Inc., 815 F.3d at 629. But civil compensatory sanctions are different; they are “remedial”—“typically tak[ing] the form of unconditional monetary sanctions” paid to the aggrieved party. Id. So the mere fact that the sanctions award here cannot be purged doesn’t make it punitive. And while the district court noted that the “sizable statutory sanction” along with the attorneys’ fees and cost would also compel Rimini’s compliance with its orders, the district court made it clear that the primary purpose of the sanctions was to compensate Oracle for its losses from Rimini’s infringing activity. Rimini Contempt Order, 2022 WL 112187, at *34. Under these facts, we find no abuse of discretion in the award and calculation of sanctions. We vacate and remand the sanctions award, however, given our reversal on Issue 8. We decline to address Rimini’s arguments related to attorneys’ fees and costs as they are premature. ORACLE USA, INC. V. RIMINI STREET, INC. 31 III. The contempt findings for Issues 1–4 are AFFIRMED. The contempt finding for Issue 8 is REVERSED. The district court’s order regarding Issues 7 and 9 is VACATED to the extent it enjoins de minimis copying not prohibited by the Copyright Act. The imposition of sanctions is VACATED and REMANDED for recalculation consistent with this opinion.