Skip to content

Instantly share code, notes, and snippets.

@tmillr
Last active July 28, 2022 19:02
Show Gist options
  • Save tmillr/5a1d01bc5bfaba345c01d7c517451534 to your computer and use it in GitHub Desktop.
Save tmillr/5a1d01bc5bfaba345c01d7c517451534 to your computer and use it in GitHub Desktop.
License and Copyright Notice Help

After some modest preliminary research of my own, here are my opinions and what I have learned so far.

These are merely my own personal notes based upon what I've gathered thus far; I am not an expert on these matters so do take everything written here with a grain of salt.

Open Source/Free Software Licenses

First, anything published publicy should have a license (particularly and especially published software).

But why?

  • A license is essentially the only thing which grants others permission to use, modify, redistribute, etc., your code.
  • A license typically also clarifies that you are providing no warranty whatsoever so that you are not legally liable for anything caused by the use of your software.

Top Selections

  • GPL
    • rather complicated
    • long read
    • restrictive
    • many versions (GPLv1, v2, v3) and alternatives (LGPL and its versions, typically used for libraries)
    • copyleft
    • you probably want version 2 (and don't allow those downstream to upgrade the copyleft to v3)

GPL/Copyleft Alternatives (in no particular order)

  • MIT

    • easy read
    • used by MIT
    • 2 versions
    • not technically called The MIT License as there is no such thing, but everyone calls it that anyway
  • Apache 2.0

    • more thorough
    • longer read
    • incompatible with GPL2, but not GPL3
    • the GNU recomended alternative to the GPL
  • BSD

    • 2 or 3 versions, mainly 2 clause and 3 clause
  • ISC

    • short and sweet, similar to MIT
    • the default license for new npm packages
    • probably better to just choose one of the above instead however as the ISC has potential wording issues

There is also the so-called Unlicense, although it is seldom used and somewhat unnecessarily complicated. It basically publishes your work as/into the public domain (which forfeits your copyright(s)?) but falls back to a license in certain situations.

The Copyright Notice

  • only the word Copyright or © is needed, although both are typically included
  • source code usually uses (c) instead of © for some reason (maybe for historical reasons because it's a non-ASCII multibyte character?)
  • copyright year is year of first publication
  • author and copyright holder are not necessarily the same thing
  • https://www.law.cornell.edu/uscode/text/17/401

For those viewng this, please let me know by leaving a comment below if you feel like there's something I got wrong or left out.

More
GNU Licenses Home
GNU License List (maybe somewhat opinionated, but very informative)
https://spdx.org/licenses/
Linus Torvalds GPL v3 criticism
GPL Recommendation
https://en.wikipedia.org/wiki/GNU_General_Public_License#Open-source_criticism
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
A simple website created by GitHub covering the basics

@tmillr
Copy link
Author

tmillr commented Jul 28, 2022

TLDR:

Use GPLv3 if you want to use a controversial license that few will fully understand (but at least will be compatible with Apache 2.0, but not GPLv2).

Use MIT/BSD/ISC if you want your software stolen and secretly used in proprietary software.

Use Apache 2.0 if you want to be incompatible with GPLv2.

Easy enough. Let's do this!

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