Friday, January 6, 2012

Open Source Software Licences Improve And Tutorial

With the current legal framework, the licence under which a program is distributed defines exactly the rights which its users have over it. For instance, in most proprietary programs the licence withdraws the rights of copying, modification, lending, renting, use in several machines, etc. In fact, licences usually specify that the proprietor of the program is the company which publishes it, which just sells restricted rights to use it. In the world of open source software, the licence under which a program is distributed is also of paramount importance. Usually, the conditions specified in licences of open source software are the result of a compromise between several goals which are in some sense contradictory. Among them, the following can be cited for a more complete discussion on this topic):



Guarantee some basic freedoms (redistribution, modification, use) to the users.
Ensure some conditions imposed by the authors (citation of the author in derived works, for instance).
Guarantee that derived works are also open source software.

Authors can choose to protect their software with different licences according to the degree with which they want to fulfill these goals, and the details which they want to ensure. In fact, authors can (if they desire) distribute their software with different licences through different channels (and prices)8 Therefore, the author of a program usually chooses very carefully the licence under which it will be distributed. And users, especially those who redistribute or modify the software, have to carefully study its licence.

Fortunately, although each author could use a different licence for her programs, the fact is that almost all open source software uses one of the common licences (GPL, LGPL, Artistic, BSD-like, MPL, etc.), sometimes with slight variations. To simplify things even more, some organizations have appeared recently which define which characteristics a software licence should have to qualify as an open source software licence. Amongst them, the two most widely known are the Debian Project, which defines the Debian Free Software Guidelines (DFSG, see appendix A.1), and the Open Source Initiative (OSI), which defines “open source” licences, and is based on the DFSG. The GNU Project also provides its own definition of free software.

It is easy to see from the DFSG that price or availability of source code in itself is not enough to characterize a product as “open source software”. The significant point lies in the rights given to the community, to freely modify and redistribute the code or modifications of them, with only the restriction that these rights must be given to all and must be non-revocable. The differences between open source licences lie usually in the importance that the author gives to the following issues:

Protection of openness. Some licences insist in that any redistributor maintains the same licence, and hence, recipient’s rights are the same, whether the software is received directly from the author, or from any intermediary part.

Protection of moral rights. In many countries, legislation protects some moral rights, like acknowledgement of authorship. Some licences also provide protection for these matters, making them immune to changes in local legislation.

Protection of some proprietary rights. In some cases, the “first author” (the party that originally made the piece of software) have some additional rights, which in some sense are a kind of “proprietary” rights.

Compatibility with proprietary licences. Some licences are designed so that they are completely incompatible with proprietary software. For instance, it can be forbidden to redistribute any software which is a result of a mix of software covered by the licence with any kind of proprietary software.

Compatibility with other open source licences. Some open source licences are not compatible with each other, because the conditions of one cannot be fulfilled if the conditions imposed by the other are satisfied. In this case, it is usually impossible to mix software covered by those licences in the same piece of software.

BSD (Berkeley Software Distribution). The BSD licence covers, among other software, the BSD (Berkeley Software Distribution) releases. It is a good example of a “permissive” licence, which imposes almost no conditions on what a user can do with the software, including charging clients for binary distributions, with no obligation to include source code. In summary, redistributors can do almost anything with the software, including using it for proprietary products. The authors only want their work to be recognized. In some sense, this restriction ensures a certain amount of “free marketing” (in the sense that it does not cost money). It is important to notice that this kind of licence does not include any restriction oriented towards guaranteeing that derived works remain open source. This licence is included verbatim in appendix A.2.

GPL (GNU General Public License). This is the licence under which the software of the GNU project is distributed. However, today we can find a great deal of software unrelated to the GNU project, but nevertheless distributed under GPL (a notable example is the Linux kernel). The GPL was carefully designed to promote the production of more free software, and because of that it explicitly forbids some actions on the software which could lead to the integration of GPLed software in proprietary programs. The GPL is based on the international legislation on copyright9, which ensures its enforceability. The main characteristics of the GPL are the following:

it allows binary redistribution, but only if source code availability is also guaranteed; it allows source redistribution (and enforces it in case of binary distribution); it allows modification without restrictions (if the derived work is also covered by GPL); and complete integration with other software is only possible if that other software is also covered by GPL. This is not the case with LGPL (GNU Lesser General Public License), also used in the GNU project, which allows for integration with almost any kind of software, including proprietary software. The GPL is included verbatim in appendix A.4. More details about the reasons and implications of the GPL are available in [23].

MPL (Mozilla Public License). This is the licence made by Netscape to distribute the code of Mozilla, the new version of it network navigator. It is in many respects similar to the GPL, but perhaps more “enterprise oriented”.

Other well-known licences are the Qt licence (written by Troll-Tech, the authors of the Qt library), the Artistic licence (one of the licences under which Perl is distributed), and the X Consortium licence (see appendix A.3).

0 comments:

Post a Comment