In the case of a Software Project under Mozilla Public License (MPL) version 2.0. Given that I want to extend the Covered Software through a bigger Project. The following is an example where File A is part of the Covered Software and any subsequent files are not part of the original Covered Software. The two listed Modifications are independent of each other, and cover two different scenarios. For simplicity, the example is written in Python.


File A:

def foo(x):
  out = x* 10 / 725 + 15
  return out

Modification 1:

File A:

def foo(x):
  out = x* 15 / 725 + 15
  out = x % 20
  return out

Modification 2:

File A:

from file_b import foo2
from file_c import foo3

def foo(x):
  x = foo2(x)
  out = foo3(x)
  return out

File B:

def foo2(x):
  out = x* 15 / 8025 + 15
  return out

File C:

def foo3(x):
  out = x % 20
  return out

Given my understanding of the MPL License, in the case of Modification 1, as File A is included in the MPL, this modification will be part of Covered Software. In case of Modification 2, I would assume File B would also still cover sufficient parts of the original Code and thus would have to be included in the License. But File C would not have to be included? Or would it still have to be included, since File A cannot function without File C.

Thus, two clarifications:

  • What exactly is covered with “contains any Covered Software.”
  • Does the Covered Software has to be functional after its Modifications, without additional files? o If “functional” is the bottleneck, simply writing a condition around this would also be possible, so I am unsure if this even can be specified

Note: See the question in regards to GPL here

  • What exactly should be the difference here? Copyright does not care about the exact license when it comes to considering of "what is a modification", and thus the answer will basically the same with just MPL instead of GPL. May 2 at 12:36
  • @planetmaker In the case of MPL, it probably makes a difference, because the MPL defines the ability to release a "Larger Work" specifically in the license, and specifically mentions separate files as part of the definitions.
    – Brandin
    May 2 at 12:37
  • Yes, there are two concepts: Covered Software (+ Modification) and Larger Work. In the case of distributing: "You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software" (3.3) . In order to follow the requirements: (3.1) "All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License." Thus the exact definition of what a modification is seems quite important to me.
    – Blacx
    May 2 at 12:46

1 Answer 1


When reading a license (or any legal document), you should pay particular attention to oddly capitalized words. Oddly capitalized words are words written with capital letters in locations where the normal grammar rules don't require capitalization. The reason to pay attention is because those words are typically defined within the license document itself and that definition may deviate from the normal English usage.

The relevant terms here are:

1.4. “Covered Software”

means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.

1.7. “Larger Work”

means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.

1.10. “Modifications”

means any of the following:

a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or

b. any new file in Source Code Form that contains any Covered Software.

In your examples, assuming that the correct license information is present, the original File A is Covered Software because the initial author placed that file under the MPL license.

In Modification 1, File A is a Modification of Covered Software, and because of that it is still Covered Software. It is a Modification, because you literally modified the file contents and that fits squarely in part a of the definition of Modification.

In modification 2, the analysis becomes more interesting.

  • For File A, the analysis is the same as for Modification 1. It is Covered Software.

  • For File B, I will assume that it was created by copying part of the original File A to a new file and changing that. By doing the copying, you made File B a Modification under part b of its definition. As File B is a Modification of Covered Software, File B is also Covered Software (and it should be placed under the MPL by attaching the notice in Exhibit A of the MPL).

  • For File C, I will assume it was created from scratch. As File C does not have any Covered Software in its creation history, it is not automatically covered by the MPL license. You can license File C in any way you like.

    The combination of Files A, B and C can be classified as a Larger Work, because it combines parts that are Covered Software with parts that are not.

    On the other hand, as File C in this example is so clearly meant to work closely together with File A, the ethical thing to do is to license File C under the MPL as well and make it Covered Software that way.

Does the Covered Software has to be functional after its Modifications, without additional files? o If “functional” is the bottleneck, simply writing a condition around this would also be possible, so I am unsure if this even can be specified

The license does not require that Covered Software is functional, with or without Modification. It is just too hard to rigorously define what it means for software to be functional, without it being too constraining on software development.

  • "as File C is so clearly meant to work together with File A, the ethical thing to do is to license File C under the MPL as well ..." - On the other hand, the MPL clearly is written specifically to allow File C to be licensed differently in such a circumstance as this, as you've analyzed, so one could just as well say that licensing File C in another way (as allowed by the license) is perfectly ethical as well.
    – Brandin
    May 3 at 10:42
  • Okay than this follows my intuition about the License. I was just unsure if there is something in software regarding functionality, but it seems as this is completely irrelevant. And morally speaking if the goal is to just not sell other peoples work as your work, abstracting your code in this way is reasonable
    – Blacx
    May 6 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.