Court Opinion

ID: 9688084
Source: CourtListenerOpinion
Date Created: 2023-08-24 17:01:18.674173+00
Date Added: 2024-06-11T12:06:31.107178
License: Public Domain

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.