Open source software: opportunity or threat?
Open source software is a collective name for all kinds of software for which the source code is freely available. Everyone is allowed to extend or improve the software and to distribute it. The conditions from open source software licenses may in some cases create problems. One might for instance be required to release the source code for a commercial product if it is based on open source software.
The author of a computer program automatically holds the copyright to this program. This allows the author to restrict copying, usage and modification of his computer program by third parties. To permits others to use the software, the author has to give permission for whatever it is he wants those others to do with it. This is called a license. In the license the author sets out the permissions he grants and the conditions under which those permissions are granted.
For example, the license for Microsoft Windows gives the user permission to install the software on one PC and has as one of its conditions that the user shall not hold Microsoft responsible for any damage that may result from using Windows. The license does not grant permission for copying or redistribution of the software and the license is of course only granted if the user pays a certain amount of money.
Open source software takes a different approach. The software is freely available for anyone, including source code. The license grants everyone permission to adapt or improve the source code, for example to fix errors, to make a more efficient implementation or to add completely new functionality. The software may also be copied and distributed freely, even in modified form. The author does not charge for this. The software is freely available on the Internet. It is even allowed to charge for distributing somebody else's open software without having to share any of the revenue with the original author.
The free availability of the source code allows anyone to contribute to the further development of the software. Many people do. This often results in a large number of additions and improvements in a short period of time. The free availability is also an advantage for users. A user of open source software is not dependent on the author of the software to get certain improvements or additions, but he can make them himself. Should the supplier ever discontinue support for the program, the user is able to take over development himself or to seek another supplier for that software. And of course the fact that the license costs are zero is quite interesting.
Like all software, open source software is protected by copyright. Although the license does not demand any money, this does not mean that there are no conditions. Almost all open source licenses require a user to reproduce the name of the author (typically in the form of a copyright notice) whenever he distributes the work or incorporates it in a commercial product. Other licenses require a distributor to make the source code of the open source software available, for example by shipping it together with their own product or by putting it on a website. Modifications are almost always required to be identified clearly. Sometimes these modifications must even be supplied in separate files and modifications sometimes must bear a different name to avoid any confusion about what is the official version.
The most famous open source licenses are:
- The BSD license,
- The GNU General Public License (GPL),
- The GNU Library or Lesser General Public License (LGPL), and
- The Mozilla Public License (MPL).
The BSD license
The BSD license is a very simple and broad license. The license permits unlimited use of the software, as well as distribution in source code and object code form. The software can be adapted freely and be incorporated in other programs without any restrictions.
The only obligations are that the copyright notice and a warranty disclaimer must be reproduced in the source code or in the documentation of the work. The name of the author and of any contributor may not be used to endorse or promote products derived from such software without specific prior written permission.
The GNU General Public License
The GNU General Public License (GPL) is the most famous open source license. Using, copying and distributing software under the GPL is always permitted. Modifying the software, or even developing an application using for example a library under the GPL is no problem.
Distribution of a work that is based on software under the GPL is also allowed if the work based on this software is also distributed under the GPL. It is not allowed to impose any further restrictions on the rights under the GPL. The source code of the software as a whole must be made available freely. The recipient of the software now has the right to freely use the entire package, and to adapt and modify it and to distribute it further without any payment to the author. The recipient may also distribute the software in modified form, as long as he does so under the GPL as well. The exact meaning of "based on" will be discussed below.
There is no obligation to release modifications or extensions to software under the GPL. Private modifications, including modifications internally within a company, can be kept a secret. The obligation to make the modifications or extensions available under the GPL only arises if the person who modified the software chooses to distribute the result.
The Library General Public License
The Library General Public License (LGPL) is a variant of the GPL. As the name indicates, it is mainly intended for libraries (such as DLLs), programs with functionality that can be used by other programs. The LGPL permits linking the library with such another program without imposing any obligations on that other program. Modifications to the library itself can only be distributed under the terms of the LGPL, which in this respect are equal to the terms of the GPL. That is, such modifications can only be distributed in source code form and without imposing any further restrictions on the recipients of these modifications.
The Mozilla Public License
According to the Mozilla Public License (MPL) the author of a work grants everyone a worldwide royalty-free license to use and distribute his work under any patent and copyrights he holds. Anyone who distributes a modification or other contribution to the work must grant the same permission for his contribution and for the combination of the original work and his modification.
It is only permitted to distribute the (original or modified) work if the source code is also made available. One way to satisfy this requirement is to distribute the source code together with the object code. Another way is to put the source code on a website. Integration of software under the MPL with one's own application is permitted, as long as the portion under the MPL is made available including source code.
Although the use of open source software has clear advantages, there are also some risks.
- The software is made available without any kind of warranty or guarantees.
- Support is usually only available on a voluntary basis.
- Adhering to the license may be difficult for companies who are used to commercial licensing terms.
The most important risk, however, is that under certain circumstances an application containing open source software has to be made available as open source software if it is put on the market. This risk mainly occur when the open source software in question is licensed under the GPL.
Basing a product on open source software
The GPL permits distribution of works that are based on a work under the GPL only if such distribution is done under the terms of the GPL as well. There is unfortunately no clear definition of what exactly constitutes "based on". The straightforward case is when source code from a work under the GPL is copied into another application. Statically linking several modules together to create an application would also seem to be covered. Dynamically linking two modules together is already a quite controversial case and by using technologies such as CORBA, RPCs, sockets or plug-in modules the situations can grow quite complex very quickly.
There is no clear consensus on the interpretation of the GPL. An often heard compromise is to assume that any form of linking invokes the sublicensing clause, but using inter-process communication does not. It should however be noted that using such technologies merely to avoid the consequences of the GPL will not be appreciated by the courts.
The Library GPL and the MPL are less problematic. It is permitted to create a "larger work" by combining the work under the MPL or LGPL with other software. This larger work may then be distributed under any licensing terms, as long as the conditions of the MPL or LGPL are adhered to for the portions of the larger work which were originally obtained under those licenses. This means that the source code of these parts have to be made available, including any modifications, and the authors of these parts must be credited in the documentation of the larger work.
Using open source software offers various advantages, such as the ability to reduce costs and development time, or to avoid being dependent on a single vendor. It is therefore to be expected that more and more companies and institutions will start using open source software. There are however some risks associated with doing so. Being forced to release some or all of the software of a commercial product as open source software may greatly reduce its value.
It is therefore recommended to carefully study the license agreement and to make an assessment of the risks associated with these conditions. One should always check whether the own application is clearly separated from software under the GPL. And of course compliance with the license conditions need to be checked.
With a careful application of the license conditions, it is possible to benefit most from using open source software while minimizing the risk.