logo

Licenses

Last Updated: 2021-11-24

Examples:

  • Linux kernel: GPLv2
  • Node: MIT
  • React: MIT https://github.com/facebook/react/blob/main/LICENSE
  • glibc: LGPL
  • BusyBox: GPLv2
  • Kotlin: Apache 2.0
  • Swift: Apache 2.0
  • golang: 3-clause BSD + patent grant
  • dart: bsd
  • kubernetes: Apache
  • tensorflow: Apache
  • Angular: MIT
  • Flutter: New BSD, or 3-clause BSD
  • Android:
    • Apache License 2.0 for userspace software
    • GNU GPL v2 for the Linux kernel modifications

GPL

GPLv3 is essentially incompatible with the GPLv2; the problems of GPLv2 compatibility with Apache licensed software were resolved with the GPLv3.

https://www.gnu.org/copyleft/copyleft.html

Why Apple tries to avoid GPL

E.g. in 2021 macOS uses zsh (MIT-like license) as the default shell instead of bash (bash 3.x uses GPLv2)

Why:

  • GPL v3 requires the code to be modifiable. Much of Apple code is signed, so Apple would have to allow users to sign or run unsigned code.
  • GPL has automatic patent licensing and Apple is very protective of its patents.

MIT

MIT permissive license as "lets people do anything they want with your code as long as they provide attribution back to you and don’t hold you liable."

GPL vs MIT

The GNU GPL is explicit about the patent grant an author would be giving when the code (or derivative work) is distributed, the MIT license does not discuss patents. Moreover, the GPL license impacts "derivative works", but the MIT license does not.

BSD

BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements.

Apache 2.0

The Apache 2.0 licenses contain a patent grant, which means that at least the authors of the code are giving you any rights that you need for the authors' patents that happen to be in the code that you are using.

Permissive vs copyleft free software license

Computer programs are deemed "free" if they give end-users (not just the developer) ultimate control over the software and, subsequently, over their devices.

"The ‘BSD-like’ licenses such as the BSD, MIT, and Apache licenses are extremely permissive, requiring little more than attributing the original portions of the licensed code to the original developers in your own code and/or documentation."

Diff: when the software is being redistributed (either modified or unmodified),

  • permissive licenses don't enforce the redistributor to open the modified source code. (the world is "good", therefore just allowing good actions and hoping for giving back in form of source code.)
  • Copyleft ("sharealike") licenses enforce the publication of the source code under the copyleft license. (the world is "evil" so "freedoms" need to be enforced; this could be "legal time-bombs")

Creative Commons

a summary of CreativeCommons licenses ...

  • Copyleft: free to modify and distribute
  • CreativeCommons: with some restrictions
  • Copyright: all rights reserved

Public Domain

Public Domain(from wikipedia): those whose intellectual property rights have expired, have been forfeited, or are inapplicable.

CreativeCommons provides some Public Domain Tools

  • CC0: "No Rights Reserved", simply FREE
  • Public Domain Mark: "No Known Copyright", some FREE stuff from public, you may also use it for FREE

CreativeCommons Licenses

Allow Adaptation Share Alike No Adaptation
Allow Commercial Use Attribution CC BY CC BY Attribution-ShareAlike CC BY-SA CC BY-SA Attribution-NoDerivs CC BY-ND CC BY-ND
No Commercial Use Attribution-NonCommercial CC BY-NC CC BY-NC Attribution-NonCommercial-ShareAlike CC BY-NC-SA CC BY-NC-SA Attribution-NonCommercial-NoDerivs CC BY-NC-ND CC BY-NC-ND

CC licenses are appropriate for all types of content you want to share publicly, except software and hardware.

http://creativecommons.org/choose/

https://creativecommons.org/choose/zero/: no rights reserved

Trademark

  • ™ tm for an unregistered trademark, that is, a mark used to promote or brand goods;
  • ℠ sm for an unregistered service mark, that is, a mark used to promote or brand services;
  • ® r for a registered trademark. The owner of a registered trademark may commence legal proceedings for trademark infringement to prevent unauthorized use of that trademark. However, registration is not required. The owner of a common law trademark may also file suit, but an unregistered mark may be protectable only within the geographical area within which it has been used or in geographical areas into which it may be reasonably expected to expand.

Read More: