Tina5Licences

Tina5 Licences

Some discussion of the licences applied to TINA occurred on the developers mailing list last month, concerning the relative benefits of the existing LGPL licence and a change to a BSD-style licence. The aim of this document is to set out the terms of these licences, and to put the "pro-LGPL" side of the argument, in the hope that it will act as a starting point for any further discussion of licensing issues.

First, let's define a few terms. The "free" in free software refers to freedom, not price: the phrase "free as in speech, not free as in beer" is often used to describe this. The aim is to allow a piece of software to be distributed in such a way that recipients are free to copy, distribute and/or modify the software. To this end, two steps are usually taken when such software is distributed. First copyright over the software is asserted by some body. This may be the person or institution who wrote the software, as is the case with TINA. However, the Free Software Foundation (http://www.gnu.org) encourages writers of free software to transfer copyright to them, giving them more legal power to defend the software. Second, a licence is offered for the software that gives recipients the right to copy, distribute and/or modify the software as long as the same licence is retained on all distributed, copied or modified versions. The licence is specifically written to prevent any recipient of the software from denying these rights to any other recipient. This is the opposite to the traditional use of copyright, and so is often referred to as copyleft. Specifically, copyleft licences include the requirement that modified versions of the software are distributed as free software. In addition, the right to modify the software implies that the distribution must include the source code, and so such software is often referred to as open source.

There are three free software licences of interest in relation to TINA: the GNU General Public Licence, the GNU Lesser General Public Licence, and the BSD-style License. Full details of these licences can be found at http://www.gnu.org. The following sections list some observations on the terms of the licences, and are not intended to fully list the terms of the licences. For a full list of free software licences, see http://www.gnu.org/licenses/licenses.html .

The GNU General Public Licence

The GNU General Public Licence (GPL) is arguably the most popular free software licence. The full licence, together with some interpretation of the terms and instructions on how to apply it, can be seen at http://www.gnu.org/licences/gpl.html . The important points of the licence are:

Recipients of the software are allowed to copy, distribute and/or modify the software as long as the same licence is applied to all copies and distributed or modified versions. Any modifications must be prominently identified with names and dates.

If you distribute any work based on the software e.g. you copy some parts of the software into your own code, then you must apply the same licence to that work.

No warranty accompanies the software.

Any patent acquired on any part of the software must be licenced under the same terms.

There are several clauses relating to situations in which the licence fails some legal test. They broadly state that, if for some legal reason the licence cannot be enforced, then normal copyright law applies and the relevant recipient of the software loses all right to use, modify, copy or distribute the software.

The licence applies certain restrictions to the way in which you distribute free software. The right to modify the software implies that the source code must be included in any distribution, although you are allowed to include executables and/or object files. The same applies to any work based on the software which you distribute. However, the licence does not apply to any other software which is aggregated with the free software without being a work based upon it. Finally, you are allowed to charge a fee for the act of copying and distributing the software, although not for the software itself, and you can optionally charge a fee for providing a warranty. Examples of these uses of the licence can be seen in commercial linux distributions such as Suse (http://www.suse.com).

The GNU Lesser General Public Licence

Originally called the GNU Library General Public Licence, the GNU Lesser General Public Licence (LGPL) is the licence under which most of the TINA libraries are distributed. It was written to cover cases in which the authors of a software library wish to encourage the widest possible use of the library in other software. The original name gave the impression that is should be the default licence for any software library, which was not the original intention, and so the name was changed to "lesser" to emphasise the point that it does less to protect the freedoms of recipients of the software. The full licence, together with some interpretation of the terms, can be obtained from http://www.gnu.org/licences/lgpl.html .

The LGPL differs from the GPL in the way it applies to derivative works. Under copyright law, a derivative work is a work based on some other copyrighted work. For instance, a piece of code that contained code from TINA would be considered a derivative of TINA. Under the GPL, any distribution of such code would have to be licensed under the GPL. The LGPL relaxes this restriction. It makes a distinction between a "work that uses the library" and a "work based on the library". A work that uses the library is generally software that can be complied independently of the library but is intended to be linked to it to produce an executable. A new front-end for TINA, replacing the tina-tools but linking to the tina-libs, would be an example of this. A work based on the library is a work that incorporates part of the library.

The LGPL is very specific about the distinction between works based on the library and works that use the library. Any work based on the library is covered by terms similar to the GPL: if you distribute it, you must do so under the LGPL. Alternatively, you may decide to licence it under the GPL instead, but the change is irreversible for that work and any subsequent derivative works. Any work that can be compiled independently of the library is considered a work that uses the library and falls outside the scope of the licence. However, an executable produced by linking the work and the library is considered a work based on the library. In this case you are allowed to distribute the work under terms of your choice provided that you allow recipients to modify the library: typically this means providing source code for the library, object files for the work that uses the library, and giving users the right to reverse engineer the work that uses the library for debugging purposes. This provides a mechanism by which a work that uses the library can be distributed commercially, whilst protecting the free software nature of the library itself.

The BSD-style Licence

Berkely Software Distribution (BSD)-style licences are non-copyleft, in that they do not insist that modified versions of the software are distributed as free software. There are several such licences that vary only in small details of the wording. The original BSD licence essentially contained only four terms:

An assertion of the author's copyright.

The software may be redistributed, with or without modification, provided that the copyright notice and the list of licence terms following this term are retained.

Any advertisement relating to the software must display the following acknowledgement: "This product includes software developed by the University of California, Berkeley and its contributors".

The author's name cannot be used to endorse or promote any product based on the software without written permission.

An exclusion of warranty.

The important point is that the licence does not require clause 2 above to be applied to any derivative works. Therefore, recipients of the software are allowed to redistribute modified versions under any licence. This allows the sale of modified versions under exclusive, commercial licences.

The advertising clause, number 3 above, was impractical, since authors using the licence would replace "University of California, Berkeley" with the name of their own institution, and so any derivative work containing components from a large number of BSD-licensed software packages would require pages full of these sentences. For instance, the 1997 version of NetBSD required 75 of these sentences. Therefore, the advertising clause was eventually removed. See http://www.gnu.org/philosophy/bsd.html for the full history of the "obnoxious BSD advertising clause". The modified licence and similar licences are generally referred to as BSD-style licences to reflect this change, and care should be taken to make the distinction between the original and modified BSD licence.

TINA Licences

Two of the above licences, the LGPL and a BSD-style licence, are used in TINA. Copyright was asserted by the University of Manchester over all of the extant code at the inception of TINA version 5. Portions of the TINA code that are not considered important from an IPR standpoint are licenced under a BSD-style licence, allowing the widest possible use of the code. Portions that include significant algorithmic content are licenced under the LGPL. However, the situation may arise where an external user, most likely a company with an interest in machine vision software that has already collaborated with the core TINA development group in the University of Manchester (UoM), would like to incorporate portions of the LGPL-licenced code into a commercial product. The copyright holder has decided that, in this situation, the licence on the relevant portions of this code could be changed to a BSD-style licence in return for financial support for the ongoing development of TINA as free software (e.g. maintenance of the server at the UoM that hosts the TINA website). Of course, this in no way restricts the right of any other user to copy, distribute and/or modify the software. This combination of licences is considered to provide the best balance between encouraging the widest possible use of TINA within the research community whilst still providing a revenue stream to support the continued development and distribution of the software.

In relation to the issue of changes to the licence, the copyright holder is free to change the licence from the LGPL or GPL to any more permissive free-software licence, such as a BSD-style licence, at any time. Recipients of the software who distribute modified versions of any LGPL-licensed portions of the code may, under the terms of the LGPL, change the licence to the GPL. This change is irreversible for that work and any further derivative works. No-one, including the copyright holder, may change the licence on any LGPL or GPL-licensed code to an exclusive licence.

The remaining issue concerns contributions to TINA from external developers. This has not been an issue in the past, but may become significant as the profile of TINA within the machine vision research community is raised. There are four possible models. First, external developers may produce works that use the library, and distribute them under any licence they choose within the restrictions imposed by the LGPL. Second, they may develop modified versions of the TINA libraries and distribute them independently under the GPL or LGPL. Third, they may submit work back into the TINA libraries under the LGPL whilst retaining copyright. Fourth, they may submit work back into the TINA libraries and transfer copyright to the University of Manchester. The first two options are clearly less desirable but may be effective in some circumstances. For instance, an existing commercial collaborator might wish to develop and market a simplified front end for TINA using the first option, allowing them to submit algorithmic work back to the libraries whilst still preserving a revenue stream. Alternatively, algorithmic work not considered suitable for inclusion into the TINA libraries could be distributed using the second option. However, one of the drivers behind the development of TINA is the desire to produce a research environment encompassing all of the available machine vision algorithms that satisfy certain requirements, for instance in relation to statistical rigour. Therefore, the third and fourth models would be the most desirable. Clearly, the generation of revenue for the support of TINA through licence changes would be more difficult in an environment of multiple copyright holders, but contributors may wish to retain their copyright. This issue is therefore likely to be negotiated on a case-by-case basis.