Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am writing software (in Java) using three libraries:

  • Library A, licensed under MIT license
  • Library B, licensed under Apache License, Version 2.0
  • Library C, licensed under LGPLv3

I would like to make my software publicly available under the MIT license.

I'm going to include all libraries in source and binary form (jar), including the their original licenses and copyright notices.

I put a LICENSE file at the root of my project with the MIT license.

I believe this should cover all requirements of MIT and LGPLv3, but I'm wondering about the NOTICE file mentioned in the Apache license.

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.

http://www.apache.org/licenses/LICENSE-2.0.html

Does this simply mean that I have to include the NOTICE files that come with the library, or do I have to write my own NOTICE file mentioning the libraries and their copyrights?

Second, are there any other requirements that I may have missed?

Finally, let's suppose I'm also using Library D, licensed under GPLv3. How does that change the situation? I understand that in this case I would have to release my project under GPLv3. Any other implications?

Please understand that I'm a student and I cannot afford a lawyer. :)

share|improve this question
add comment

1 Answer

up vote 5 down vote accepted

If you are releasing your software with source code under the MIT license you should have no trouble including the other packages with it as long as you comply with the various notice requirements in the licenses. If it is important, check with the copyright holders of the libraries to be sure.

If you are thinking about a binary only release you will need to be sure you comply with the requirements of the LGPL that, in effect, you must allow the user to replace the LGPL library with their own version. (This is very simplified but gets to the intent of the LGPL if not the legal specifics)

If you depend on a GPL library your code is probably considered a derived work and therefor must be released under the GPL. But for certain Java libraries the classpath exception may be relevant

share|improve this answer
    
Thank you, and is it correct that I don't need to write a NOTICE file, I just keep the one that comes with the apache library? –  Dario Sep 3 '13 at 21:26
    
You probably should include a mention in your Notice file (or equivalent) of the included libraries and the copyrights for them. (e.g. this software includes X, copyright <date>, <owner name>, licensed under the Apache License, for details see <other file>). Even if it is not strictly legally required, it is a nice thing to do. –  Craig Sep 3 '13 at 22:04
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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