Originally asked in Software Engineering but a user raised it is more a legal question than an engineering one.

Let's suppose there is a software at version a1 in code repository A on an online code hosting website. Let's suppose

  • the original author updated it and made a version a2, then a3.
  • Another person comes along, forked a1 to another code repository B, then modified it resulting their own b2, then modified b2 again and resulted in b3.
  • All versions are available online - a1, a2, b2 are available in the code commit history, and a3, b3 are available on the home page.
a1 -- a2 -- a3
  `-- b2 -- b3

Question: how many derivative works of the software exist in this scenario?

My initial instinct is one, because there is the original code repository A, and a forked-and-modified repository B which is the derivative work. But I realized the answer might be four (that is, a2, a3, b2, b3 all count as derivative works of the original code -- but not sure), given that in the copyright law (using US copyright law as an example):

A “derivative work” is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.

The definition given in the Apache 2.0 license is more direct:

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.

I think a key point a software is different from a book/painting/movie is that software is very much a "live" thing - that is, software is constantly being updated after being "published". Especially, each small iteration (commit) of an open source project is accessible publicly, instead of periodically being made public after accumulating a few months' works behind the scene.

  • 1
    What practical difference does it make whether there are 1, 2, 10 or 100000 "derivative works"?
    – Greendrake
    May 9, 2022 at 2:36
  • @Greendrake it doesn't, but it helps me to understand whether say, b2 and b3 count as one derivative work, or two different derivative works.
    – Leedehai
    May 9, 2022 at 14:08
  • If it doesn't make any difference then what you mean by "count" is unclear. What would it "count" for?
    – Greendrake
    May 9, 2022 at 14:29

1 Answer 1



Yes, each version is a derivative work, as mentioned in https://www.copyright.gov/circs/circ14.pdf

The following are examples of the many different types of derivative works:
A new version of an existing computer program

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .