Code

"Open" licenses

Here's a list of some of the important families of open-source software licenses, along with a couple examples of who is using them:

"Open" families; they have similar terms:

Exercise: read the Wikipedia articles on Apache, BSD, and MIT licenses. Describe the similarities and the differences.

"Libre" licenses

The libre licenses have a bit more spread in content; we include a brief description:

Exercise: read the History section of the Wikipedia article on GPL.

Interesting licenses

Some more...interesting...licenses also exist. For the curious, see the FSF's evaluation of the original JSON license for a discussion on morality clauses, and the notes on licensing creative expression for commercialisation clauses.

There is also a class of licenses which attempt to be "open", with some "non-compete" clauses added; read Motivations and pitfalls for new "open-source" licenses at LWN.

License proliferation

These days it is rare for a software project to avoid a large number of dependencies; if these dependencies have different licenses, or the project itself has a different license, they need to be evaluated for compatibility.

Permissively-licensed software can generally be combined with less-permissive licenses, though this is not always the case: one of the primary reasons for GPLv3 was to add compatibility with Apache-2. (And conversely: one of the main reasons for Apache-2 was to move toward compatibility with GPL.)

Evaluating licenses for compatibility generally requires lawyers with expertise in copyright law; major licenses have already had such evaluations performed, and legal opinions are readily found on the internet. (Few of these have ever been tested in court.)

Lesser-known licenses may not have had such review, or the quality of such reviews may be less trustworthy. Read Cutting back license proliferation on LWN.