Im working on a Java Software and there is a need to use some extern libraries. I found two relevant libs. The one is on an AGPL and the other on the MIT License. Now Im asking my self, can I use these libs if:

  • I would make a non-opensource-nonfree-software


  • I would make a non-opensource-free-software

I dont really understand the whole license stuff, could somebody tell me which one of the libs for what kind of software would be better? Thank you

  • I removed the tag [java], since your question isn't about programming languages but about licensing. – Andres F. May 28 '12 at 18:58
  • Ah ok, I just tought its maybe importan for a license what language im using. – sabisabi May 28 '12 at 19:15

If you choose the AGPL licensed library, apparently you have no other choice than to relase your software as Open Source under the AGPL as well.
See these questions here at Programmers.SE for more information:

Of course you can't get binding legal advice from here, but the answers in the links above all sound pretty clear.

Given the fact that you have another available library to pick which is under the MIT license, this is a no-brainer: pick the MIT licensed library.

The MIT license is one of the most permissive open source licenses. As Andres F. already said in his answer, it allows basically everything.

Quote from Wikipedia:

It is a permissive free software license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms.

So you are allowed to use a MIT-licensed library in your software, no matter if your software is free / open source or not.


Concerning your question about GPL, see the GPL FAQ.
Quote from the link:

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

Short version:

  • if you use GPL code privately, do what you want
  • if you ever release it in any form, it must be with source code and under the GPL
  • Ok thank you, now I got it. MIT License > (A)GPL :-) But another question -> GPL means: if you use a gpl lib your whole software has to be opesource AND free? And what if somebody would use a gpl lib for private stuff? – sabisabi May 28 '12 at 20:24
  • I edited my answer, see above! – Christian Specht May 28 '12 at 20:45

I think you can't go wrong with the MIT license, which is very permissive and pretty much allows you to do anything with the lib, as long as you include a copy of the license text. Your software can be closed-source and nonfree if you want.

I'm not sure about the Affero GPL, since I don't understand its provisions either. However, if its implications are like the GNU GPL's, then you cannot redistribute as nonfree, which wouldn't suit you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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