Choosing a license

Choosing a license is an important part of publishing your free software projects. There are many to choose from, and each has different trade-offs and implications for your project’s future. It can be difficult to change the license later, so you should consider it carefully at the start.

Here are a few widely used free software licenses we recommend, and why you might choose them.

Once you pick a license, include it when sharing your software. The easiest way to do this is to copy the plain-text version into a file called “COPYING” in your source code repository. For more complex scenarios, we recommend the REUSE approach.

Copyleft licenses

Copyleft licenses are useful for ensuring that your software remains free. The use of copyleft requires anyone who makes improvements to your software to publish them under the same copyleft license, which ensures that you can incorporate their improvements back into your version. For more details, see What is copyleft?

Advantages

  • Ensures your software remains free
  • Encourages community contributions
  • Promotes free software generally

Disadvantages

  • Less attractive to businesses
  • Must consider license compatibility for reuse
License Use it for… Copyleft approach
Mozilla Public License 2.0 Libraries (allows vendoring) File-based
GNU Lesser General Public License Libraries (disallows vendoring) Object-based
GNU General Public License Executable programs Executable-based
GNU Affero General Public License Networked services Network-based

Permissive licenses

Permissive licenses impose relatively few obligations on the recipient of your software. These licenses permit the software to be freely re-used and integrated into any other software project, including non-free software. It can be useful for projects which target commercial use or widespread adoption.

Advantages

  • Permits easy re-use
  • Encourages widespread adoption
  • Attractive to business users

Disadvantages

  • Can be incorporated into non-free works
  • Discourages community contributions

We recommend the following permissive licenses:

For businesses publishing free software, it may be desirable to use a permissive-style license which includes considerations for trademark and patent rights. For this purpose we recommend the Apache 2.0 license.

Public domain

Publishers who wish to enter their software into the public domain should note that a simple public domain dedication is not sufficient for international use. We recommend the following licenses, which provide public-domain-equivalent legal rights in a manner compatible with international laws:

Licenses for other situations

We have a separate page recommending licenses for non-software assets, such as multimedia:

Licensing non-software assets