Types of Licences

What is a Free Software Licence?
Public Domain Licences
Weak Copyleft Licences
Strong Copyleft Licences

What is a Free Software Licence?

According to the Free Software Definition free software must fulfil 4 freedoms:

  1. The freedom to run the program, for any purpose

  2. The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this.

  3. The freedom to redistribute copies so you can help your neighbour

  4. The freedom to improve the program, and release your improvements to the public, so that the whole community benefits . Access to the source code is a precondition for this.

The Open Source definition is similar, but some licences can qualify as open-source and not as free software. This is usually not an issue, because the majority of open source software out there is free as well. (And few people would like to create an open-source licence that’s not endorsed by the Free Software foundation.)

A software licence qualifies as a free software/open-source licence, if it allows those four freedoms. There’s still a lot of room to manoeuvre and to impose various restrictions, but otherwise these freedoms make them usable enough for the users and co-developers.

Public Domain Licences

The first type of licences are public-domain-like licences, also known as BSD-style licences, Permissive free software licences, or “Copycenter licences”. These licences allow you to do almost anything conceivable with the program and its source code, including distributing then, selling them, using the resultant software for any purpose, incorporating into other software, or even converting copies to different licences, including that of non-free (so-called “proprietary”) software.

Probably the only two actions none of these licences allow is removing the original copyright notice, or suing the creator of the software for damages (the latter is due to the “no warranty” clause). Some of them pose some additional that do not reduce from their public domain nature.

Prominent examples of Public Domain licences include:

  1. The various BSD licences, under which the “Berkeley Software Development” UNIX variant were made available. The original 4-clause BSD licence contained an additional advertising clause, that required publishing the names of the copyright holders on every advertising material. This proved to be a problem and was rendered GPL-incompatible and so using this licence is no longer recommended.

    Later on, the advertising clause was removed to formulate 3-clause and 2-clause BSD licences, which are both less problematic and GPL-compatible.

  2. The MIT X11 Licence was created by MIT for their X Window System software. It explicitly allows to do many activities with the licensed code, including sub-licensing, which means converting derived works of the code to different licences.

  3. the Apache Licence was formulated for the Apache project and has seen several revisions. It includes some language to deal with patent-related issues. The latest version - Apache 2.0 was partially created in order to be compatible with version 2 of the GPL, but the FSF ruled the Apache Licence as incompatible with it. The Apache Licence, however, was declared as compatible with version 3 of the GPL.

  4. The ISC licence is functionally equivalent to the 2-clause BSD-licence, with some “language made unnecessary by the Berne convention removed”. This licence is also favoured by the OpenBSD project.

Weak Copyleft Licences

Weak Copyleft licences are free software licences that mandate that source code that descended from software licensed under them, will remain under the same, weak copyleft, licence. However, one can link to weak copyleft code from code under a different licence (including non-open-source code), or otherwise incorporate it in a larger software.

Otherwise, weak copyleft licences allow free distribution, use , selling copies of the code or the binaries (as long as the binaries are accompanied by the (unobfuscated) source code), etc.

Examples of weak copyleft licences include:

  1. The GNU Lesser General Public Licence (or LGPL for short) - this licence was formulated by the Free Software Foundation based on the GNU General Public Licence (or GPL). Its text is longer than the GPL, and it is reportedly a more complicated licence. Other than the general “you-can-link-it-against-everything-as-long-as-you-keep-inclusive-code-LGPLed”, it allows an explicit conversion to the GPL, has patent-related clauses, and contains many additional restrictions.

    Version 2 of the LGPL was succeeded by version 2.1, and now there’s also version 3 which is based on a short adaptation of the version 3 of the GPL (see below).

  2. Version 2.0 of the Artistic Licence, which was formulated by the Perl foundation is used by the Parrot Virtual Machine, some Perl 6 implementations, and other projects. The original Artistic Licence has problematic phrasing, and is not recommended for general use, unless possibly when dually licensed with a different licence (as is the case for perl 5 and many Perl modules on the CPAN).

    The Artistic Licence version 2 is relatively short and easy to digest. One note about it is that it allows distributing binaries that were derived from a modified source, without the obligation to release the modifications of the source. However, if one wishes to distribute a modified source, he must make his modifications under the same licence.

    An anecdote about this licence is that it was chosen by R.E.M for licensing some video-clips from one of their albums.

  3. The Mozilla Public Licence (or MPL) was phrased for the public source release of the Mozilla project. It was characterised as a hybridisation of the modified BSD licence and the GPL. This licence was ruled as GPL-incompatible, which eventually caused the Mozilla project to re-license its code under a triple MPL, GPL and LGPL licence. This is still the licensing terms of Mozilla projects such as the Firefox web-browser up to today.

  4. GPL with an Exemption Clause - the GPL is a strong copy-left licence, but sometimes an additional clause is added that allows it to be linked against code of non-GPL-compatible licences (including non-open-source code). This strategy was chosen by Sun Microsystems when they decided to release the source of the Java programming language under an open-source licence.

Strong Copyleft Licences

Strong copyleft licences go a step further from weak copyleft licences and mandate that any distributed software that links or otherwise incorporates such code be licensed under compatible licences, which are a subset of the available open-source licences. As a result, these licences have been called “viral”.

Examples of strong copyleft licences include:

  1. the GNU General Public Licence (or GPL for short), which has two common primary versions - version 2 and version 3. The GPL has a complicated language (I read the GPL version 2 once and did not fully understand it) and has some additional restrictions beyond just making sure that code incorporating its code would be under compatible, open-source licences.

    Note that there is a difference between the GPL version 2, and the GPL version 3 and that they are mutually incompatible. Some people use the language “Licensed under the GNU General Public Licence, version 2, or at your option any later version” which avoids this problem. However, many projects including the Linux kernel are GPL version 2 only.

  2. The Sleepycat licence. This licence was formulated by Sleepycat Software (now part of Oracle) for use in their Berkeley DB database product. The reason this licence was chosen instead of the GPL was because the source for the Berkeley DB was originally written under one of the BSD licences, and it was not clear whether it was possible to sub-license it under the GPL.

    The Sleepycat licence is short and has a simple language, and is easy to understand. From my reading of it, it seems that it is both recursive (requires code that originated from it to be licensed under the same licence) and that it mandates releasing the source code of software applications that linked against it, but under a non-specified (and possibly non-free) licence.

    Sleepycat has also provided a commercial licence for using Berkeley DB which allows incorporating it into a larger work without the need to release the source. This is a valid business model with originators of GPL-licensed software and other strong copyleft licences.