Software License List

These lists of licenses are those which are or which are not usable for any software component in IPFire. If you want to add a contribution under a different license, please contact legal@ipfire.org.

Good Licenses

Full Name Short Name FSF Free? GPLv2 Compat? GPLv3 Compat? URL
Affero General Public License 1.0 AGPLv1 Yes No license
Affero General Public License 3.0 AGPLv3 Yes No Sortof license
Affero General Public License 3.0 or later AGPLv3+ Yes No Sortof license
Apache Software License 1.0 ASL 1.0 Yes No No license
Apache Software License 1.1 ASL 1.1 Yes No No license
Apache Software License 2.0 ASL 2.0 Yes No Yes license
Artistic (clarified) Artistic clarified Yes Yes Yes license
Artistic 2.0 Artistic 2.0 Yes Yes Yes license
Beerware License Beerware Yes Yes Yes license
Boost Software License Boost Yes Yes Yes license
BSD License (original) BSD with advertising Yes No No license
BSD with attribution BSD with attribution Yes license
BSD License (no advertising) BSD Yes Yes Yes license
BSD License (two clause) BSD Yes Yes Yes license
BSD Protection License BSD Protection Yes No No license
CMU License (BSD like) MIT Yes Yes Yes license
Common Development Distribution License CDDL Yes No No license
Common Public License CPL Yes No No license
Copyright Attribution Only Copyright only Yes Yes Yes license
Creative Commons BSD BSD Yes Yes Yes license
Creative Commons GNU GPL GPLv2+ Yes N/A See Matrix license
Creative Commons GNU LGPL LGPLv2+ Yes See Matrix See Matrix license
Do What The F*ck You Want To Public License WTFPL Yes Yes Yes license
Docbook MIT License DMIT Yes No No license
European Union Public License 1.1 EUPL 1.1 Yes Yes No license
Freetype License FTL Yes No Yes license
GNU General Public License (no version) GPL+ Yes Yes Yes 1
GNU General Public License (no version), with Classpath exception GPL+ with exceptions Yes Yes Yes 2
GNU General Public License (no version), with font embedding exception GPL+ with exceptions Yes Yes Yes 3
GNU General Public License v1.0 only GPLv1 Yes No No license
GNU General Public License v1.0 or later GPL+ Yes Yes Yes 4
GNU General Public License v2.0 only GPLv2 Yes See Matrix See Matrix license
GNU General Public License v2.0 only, with Classpath exception GPLv2 with exceptions Yes Yes, if exception is used. Yes, if exception is used. license
GNU General Public License v2.0 only, with font embedding exception GPLv2 with exceptions Yes See Matrix See Matrix license
GNU General Public License v2.0 or later GPLv2+ Yes N/A See Matrix license
GNU General Public License v2.0 or later, with Classpath exception GPLv2+ with exceptions Yes Yes, if exception is used. Yes, if exception is used. license
GNU General Public License v2.0 or later, with font embedding exception GPLv2+ with exceptions Yes N/A See Matrix license
GNU General Public License v3.0 only GPLv3 Yes See Matrix N/A license
GNU General Public License v3.0 only, with Classpath exception GPLv3 with exceptions Yes Yes, if exception is used. N/A license
GNU General Public License v3.0 only, with font embedding exception GPLv3 with exceptions Yes See Matrix N/A license
GNU General Public License v3.0 or later GPLv3+ Yes See Matrix N/A license
GNU General Public License v3.0 or later, with Classpath exception GPLv3+ with exceptions Yes Yes, if exception is used. N/A license
GNU General Public License v3.0 or later, with font embedding exception GPLv3+ with exceptions Yes See Matrix N/A license
GNU Lesser General Public License (no version) LGPLv2+ Yes Yes Yes 5
GNU Lesser General Public License v2 (or 2.1) only LGPLv2 Yes See Matrix See Matrix license 6
GNU Lesser General Public License v2 (or 2.1), with exceptions LGPLv2 with exceptions Yes See Matrix See Matrix 7
GNU Lesser General Public License v2 (or 2.1) or later LGPLv2+ Yes See Matrix See Matrix license
GNU Lesser General Public License v2 (or 2.1) or later, with exceptions LGPLv2+ with exceptions Yes See Matrix See Matrix 8
GNU Lesser General Public License v3.0 only LGPLv3 Yes See Matrix See Matrix license
GNU Lesser General Public License v3.0 only, with exceptions LGPLv3 with exceptions Yes See Matrix See Matrix 9
GNU Lesser General Public License v3.0 or later LGPLv3+ Yes See Matrix See Matrix license
GNU Lesser General Public License v3.0 or later, with exceptions LGPLv3+ with exceptions Yes See Matrix See Matrix 10
ImageMagick License ImageMagick Yes Yes Yes license
ISC License (Bind, DHCP Server) ISC Yes Yes Yes license
libtiff License libtiff Yes Yes Yes license
MIT license (also X11) MIT Yes Yes Yes license
Mozilla Public License v1.0 MPLv1.0 Yes No No license
Mozilla Public License v1.1 MPLv1.1 Yes Compatible if dual licensed with GPL, otherwise Incompatible Compatible if dual licensed with GPL, otherwise Incompatible license
Mozilla Public License v2.0 MPLv2.0 Yes Sometimes Sometimes license
MySQL License GPLv2 with exceptions Yes ? license
OpenLDAP License OpenLDAP Yes Yes Yes license
OpenSSL License OpenSSL Yes No No license
Perl License GPL+ or Artistic Yes Yes Yes license
Perl License (variant) GPLv2 or Artistic Yes Yes No 11
Perl License (variant) GPLv2+ or Artistic Yes Yes Yes 12
Perl License (variant) LGPLv2+ or Artistic Yes Yes Yes 13
PostgreSQL License PostgreSQL Yes Yes Yes license
Public Domain Public Domain Yes Yes Yes 14
Python License Python Yes Yes Yes license
Vim License Vim Yes Yes Yes license
zlib/libpng License zlib Yes Yes Yes license
zlib/libpng License with Acknowledgement zlib with acknowledgement Yes No No license


Bad Licenses

Full Name FSF Free? URL Notes
CACert Root Distribution License No License Liability disclaimer is actually use restriction
European Union Public License v1.0 No License Non-free due to Article 13.
Intel Open Source License Yes License Deprecated license
unrar license No License Use restrictions, forced removal clause, see license page for details


GPL Compatibility Matrix

Source: http://www.fsf.org/licensing/licenses/gpl-faq.html#v2v3Compatibility

I want to copy code under / I want to release a project under GPLv2 only GPLv2 or later GPLv3 or later LGPLv2.1 only LGPLv2.1 or later LGPLv3 or later
GPLv2 only OK OK ((If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.)) NO OK if you convert to GPLv2 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv2 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.)) NO
GPLv2 or later OK ((You must follow the terms of GPLv2 when incorporating the code in this case. You cannot take advantage of terms in later versions of the GPL.)) OK OK OK if you convert to GPL (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPL (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.))
GPLv3 NO OK if you upgrade to GPLv3 ((If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.)) OK OK if you convert to GPLv3 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv3 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) (( If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.))
LGPLv2.1 only OK if you convert to GPLv2 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPL (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.)) OK if you convert to GPLv3 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK OK ((If you do this, as long as the project contains the code released under LGPLv2.1 only, you will not be able to upgrade the project's license to LGPLv3 or later.)) OK if you convert to GPLv3 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.))
LGPLv2.1 or later OK if you convert to GPLv2 (( LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((You must follow the terms of GPLv2 when incorporating the code in this case. You cannot take advantage of terms in later versions of the GPL.)) OK if you convert to GPL ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv3 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK ((You must follow the terms of LGPLv2.1 when incorporating the code in this case. You cannot take advantage of terms in later versions of the LGPL.)) OK OK
LGPLv3 NO OK if you upgrade and convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.)) ((If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.)) OK if you upgrade to LGPLv3 ((If you have the ability to release the project under LGPLv2.1 or any later version, you can choose to release it under LGPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under LGPLv3.)) OK
I want to use (link to) a library under / I want to release a project under GPLv2 only GPLv2 or later GPLv3 or later LGPLv2.1 only LGPLv2.1 or later LGPLv3 or later
GPLv2 only OK OK (( If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.)) NO OK if you convert to GPLv2 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv2 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) (( If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.)) NO
GPLv2 or later OK ((You must follow the terms of GPLv2 when incorporating the code in this case. You cannot take advantage of terms in later versions of the GPL.)) OK OK OK if you convert to GPL ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((You must follow the terms of GPLv2 when incorporating the code in this case. You cannot take advantage of terms in later versions of the GPL.)) OK if you convert to GPL ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.))
GPLv3 NO OK if you upgrade to GPLv3 ((If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.)) OK OK if you convert to GPLv3 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) OK if you convert to GPLv3 ((LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.)) ((If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.)) OK if you convert to GPLv3 ((LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.))
LGPLv2.1 only OK OK OK OK OK OK
LGPLv2.1 or later OK OK OK OK OK OK
LGPLv3 OK OK OK OK OK OK

  1. A GPL or LGPL licensed package that lacks any statement of what version that it's licensed under in the source code/program output/accompanying docs is technically licensed under any version of the GPL or LGPL, not just the version in whatever COPYING file they include. 

  2. A GPL or LGPL licensed package that lacks any statement of what version that it's licensed under in the source code/program output/accompanying docs is technically licensed under any version of the GPL or LGPL, not just the version in whatever COPYING file they include. And if they manage to grant the Classpath exception without specifying a version, you get this strange beast. 

  3. A GPL or LGPL licensed package that lacks any statement of what version that it's licensed under in the source code/program output/accompanying docs is technically licensed under any version of the GPL or LGPL, not just the version in whatever COPYING file they include. And if they manage to grant the font embedding exception without specifying a version, you get this strange beast. 

  4. Note that this is not GPLv1+, because 1+ is the same as any version. 

  5. A GPL or LGPL licensed package that lacks any statement of what version that it's licensed under in the source code/program output/accompanying docs is technically licensed under any version of the GPL or LGPL, not just the version in whatever COPYING file they include. Note that this is LGPLv2+, not LGPL+, because version 2 was the first version of LGPL. Note that this license was originally referred to as the GNU Library General Public License v2, but all current versions (v2.1 or newer) of the license are correctly known as the GNU Lesser General Public License. 

  6. Note that this license was originally referred to as the GNU Library General Public License v2, but all current versions (v2.1 or newer) of the license are correctly known as the GNU Lesser General Public License. 

  7. Please be sure that any exceptions are approved by emailing them to legal@ipfire.org first. 

  8. Please be sure that any exceptions are approved by emailing them to legal@ipfire.org first. 

  9. Please be sure that any exceptions are approved by emailing them to legal@ipfire.org first. 

  10. Please be sure that any exceptions are approved by emailing them to legal@ipfire.org first. 

  11. Some perl packages explicitly state GPLv2, only use this license for those cases 

  12. Some perl packages explicitly state GPLv2+, only use this license for those cases 

  13. Some perl packages explicitly state LGPLv2+ (extremely uncommon), only use this license for those cases 

  14. Being in the public domain is not a license; rather, it means the material is not copyrighted and no license is needed.