Open Source Licensing – How to Attribute Multiple Third-Party Components

licensingopen source

I'm developing a Java application that utilizes several third party open source libraries. I'm adding a section to my app's "About" dialog that lists the components and their license notices.

For those that use the same license, do I have to repeat the same license text for each one? For example, I use several components that are all released under the Apache 2 license. Do I have to list the Apache 2 license terms for each one, or just say "Foo, Bar, and Baz are used under the terms of the Apache 2 License" and list the actual terms once?

Thanks. Just want to do the right thing.

Best Answer

IANAL and questions like this are always best put to a lawyer but:

The best source of information regarding this would be the websites of the organisations for the licences. Sometimes they contain FAQs that answer these questions. If not you'll have to refer to the licences themselves e.g. http://www.apache.org/licenses/LICENSE-2.0.html which contains:

Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and

  2. You must cause any modified files to carry prominent notices stating that You changed the files; and

  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

Notice that there are more conditions than merely including the licence file. Sometimes these conditions can be quite strict e.g. for the GPL.

So, to answer your question more directly: In the About dialog you may want to mention which components (and licences) are included in your application, however I would be surprised if it is required (many applications would not even have an About dialog). Generally speaking, you just need to keep files like the licence file and in this case the 'NOTICE' file in your distribution (as well as meeting any the other conditions like those of modified files).

That being said, I also like to give credit to the giants whose shoulders I stand on by including their logos/names in the splash screen, About dialog etc.

Related Topic