2

I want to fork a project licensed under the Apache 2.0 license. Section 4.(b) states that:

You must cause any modified files to carry prominent notices stating that You changed the files

The original source code files do not contain any license header. So when I modify a file, how should I format the prominent notice? Is it enough to say

(c) 2000-2021 OriginalProjectName contributors
(c) 2021 My Name

Some more context: Each file in the original project has been modified by 1-4 people, depending on the file.

What should be done if I merge a patch someone else sends me? Should I add their name to the license header too?

1 Answer 1

1

Yes, the NOTICE file needs to include information about your modifications and information about the copyright holders that contributed to the code (all of the code, even the old parts). If it does not yet exist then you should consider adding one.

It is good practice in Apache projects to have a NOTICE file, examples how they can look can be found everywhere, for example in the SPARK project. But if it is only a few lines of information then you can keep that in each file with the license header.

You should read the entire Apache license and if you have questions consult the FAQ.

When someone sends code or patches to you and you include that in the project, then this should be properly recognized and recorded.

Please consider using the SPDX format for your license header.

A last comment: please be generous in giving credits to other contributors to your project, in the same way as you would expect others to honor your contributions in their projects.

6
  • "Yes, the NOTICE file needs to include information about your modifications ..." — Which clause of the Apache 2.0 license requires a NOTICE file to include information about the modifications I made?
    – Flux
    Aug 28, 2022 at 7:12
  • You may put the information about the fact that you changed a certain file into each such file, or (as it is often done) you can put the information about your changes to files into one NOTICE file which is used for the entire project. This is to satisfy Section 4.(b). However, you are not required to explain the details (e.g. "I modified lines 29...37"). Aug 28, 2022 at 12:51
  • "... or (as it is often done) you can put the information about your changes to files into one NOTICE file which is used for the entire project" — Does that really satisfy clause 4(b)? Clause 4(b) says "You must cause any modified files to carry prominent notices stating that You changed the files". From my understanding, this means that each modified file must be marked as modified within the modified file itself.
    – Flux
    Aug 28, 2022 at 14:10
  • yes, in theory. But it is often not done this way. I just checked with a random Apache Foundation project (OpenOffice) and the information is not present in each file. Aug 28, 2022 at 14:23
  • @Martin_in_AUT If the modifications were done by the same author or same group each time, then I don't think they would be bound by that license requirement (i.e. they don't have to continuously add 'prominent notices' each time they do a commit), because you can't meaningfully violate your own license.
    – Brandin
    Sep 9, 2022 at 12:35

Your Answer

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

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