GPL : Java Glossary


GPL (Gnu Public Licence). A legal scheme for creating more open-source software. There are two categories of licence.

The GPL and LGPL (Lesser General Public License) (for libraries and API (Application Programming Interface) ’s) are the two GNU (Gnu’ Not Unix!) copyleft licenses. In both cases, the source code must be available either as a bundle shipped directly with the project or linked to via a URL (Uniform Resource Locator) in the project documentation. Free software does not refer to price, but instead it is a matter of liberty.

For the GPL (GNU, all derivative works are also GPL’ed. Also, any project that uses any GPL’ed code will be GPL’ed as well.

The LGPL (GNU is used in cases where you want your project to remain open sourced, but you do not want to force people utilizing your code to GPL their code too. For example, if I released a LGPL’ed JCE (Java Cryptography Extension) framework; developers could use my library in their project without being required to LGPL or GPL their project. A real world example of code licensed under the LGPL is GNU ’s own glibc libraries. This allows proprietary software vendors (i.e. Oracle, Corel etc…) to sell code for Linux distros even though it was linked with the glibc libraries. Note that fixes/updates to an LGPL’ed project are considered LGPL’ed.

GNU recommends using the GPL. They have a discussion as to why you should not use the LGPL.

I am appalled that people put out code under GPL or LGPL. By doing so they are giving full permission to child pornographers or militaries fighting illegal wars to use their software without restriction for even the most heinous purposes. To me, these people are like the plumbers who kept Auschwitz running.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number