Skip to content

Instantly share code, notes, and snippets.

@brennacodes
Last active June 6, 2023 17:31
Show Gist options
  • Save brennacodes/8d22bd70181dd06dd9776678073fdd0b to your computer and use it in GitHub Desktop.
Save brennacodes/8d22bd70181dd06dd9776678073fdd0b to your computer and use it in GitHub Desktop.
A summary of the most common types of software licenses
License Name Description Restrictions Permissive or Copyleft Allows Commercial Use Example
GNU General Public License (GPL) Copyleft license that requires derivative works to be licensed under the GPL as well. Must provide source code, modifications must be open source Copyleft Yes Linux Kernel, GNU Tools
MIT License Permissive license that allows almost unrestricted use, modification, and distribution of the software. No restrictions Permissive Yes jQuery, Ruby on Rails
Apache License 2.0 Permissive license with patent and trademark grants. Redistribution must include original license Permissive Yes Apache HTTP Server
BSD 3-Clause License Permissive license that allows modification and distribution, with attribution requirements. Redistribution must include original license Permissive Yes FreeBSD, LLVM
Mozilla Public License 2.0 Copyleft license similar to the GPL, but with more permissive compatibility options. Modifications must be open source Copyleft Yes Mozilla Firefox
Creative Commons (CC0) Public domain dedication, effectively waiving all copyrights and related rights. No restrictions Permissive Yes Unsplash, Wikimedia Commons
GNU Lesser General Public License (LGPL) Copyleft license with fewer restrictions on linking libraries. Must provide source code, modifications must be open source Copyleft Yes Qt, GStreamer
Eclipse Public License (EPL) Permissive license designed for Java-based projects. Redistribution must include original license Permissive Yes Eclipse IDE, Android
ISC License Permissive license based on the MIT License, but with simpler language. No restrictions Permissive Yes OpenSSH, OpenBSD
PostgreSQL License Permissive license with attribution requirements for modifications. No restrictions Permissive Yes PostgreSQL Database

Copyleft vs Permissive

Copyleft Licenses:

  1. Share-alike Requirement: Copyleft licenses, such as the GNU General Public License (GPL), require that any modifications or derivative works of the original software must be distributed under the same copyleft license. This ensures that the software and its derivatives remain open source.
  2. Stronger Restrictions: Copyleft licenses often impose more restrictions on how the software can be used, modified, and distributed. For example, they may require that the source code be made available and that any distribution includes the original license and copyright notices.
  3. Protecting Openness: Copyleft licenses are designed to protect the principles of free software and promote the continued availability of open source software. They aim to prevent the software from being incorporated into proprietary software and to maintain its open nature.

Permissive Licenses:

  1. Minimal Restrictions: Permissive licenses, such as the MIT License and Apache License, have fewer restrictions on how the software can be used, modified, and distributed. They provide more flexibility and often have a "take it and do whatever you want" approach.
  2. No Share-alike Requirement: Permissive licenses do not require that modifications or derivative works be distributed under the same license. This means that modified versions can be released under different licenses, including proprietary ones.
  3. Encouraging Wide Adoption: Permissive licenses aim to maximize the adoption and use of the software by allowing developers and organizations to incorporate it into both open source and proprietary projects without significant licensing requirements.

In summary, copyleft licenses prioritize the openness and continued availability of software by enforcing the distribution of modifications under the same open source license. Permissive licenses, on the other hand, provide more freedom and flexibility to developers and allow for a wider range of licensing options, including proprietary use.

What is Copyleft?

Copyleft is a term used to describe a type of licensing arrangement that ensures that the software and its derivatives remain open source and freely available to the public. It is the opposite of traditional copyright, which typically restricts the use, modification, and distribution of a work.

When a software license is copyleft, it grants users the freedom to use, modify, and distribute the software and its source code. However, it also requires that any modifications or derivatives of the original work be distributed under the same copyleft license. In other words, copyleft licenses enforce the principle that any changes made to the software must also be open source and freely available to others.

The copyleft concept was popularized by the GNU General Public License (GPL), which is used by many open source projects. The GPL ensures that software released under its terms remains free and open source, preventing it from being incorporated into proprietary software. It aims to protect and promote the principles of free software and encourage collaborative development.

Copyleft licenses are designed to ensure that the software and its benefits remain accessible to all, even when modified or extended by others. They provide a legal framework to foster a culture of sharing and collaboration within the open source community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment