Other Criteria of Open Source Software

GPL Compatibility
Copyleft
Open Source vs. Sourceware

GPL Compatibility

Making a program free is not necessarily enough to make it compatible with the GNU GPL licence. The GPL makes some restrictions regarding which licences it can link against, and some otherwise free software is not compatible with them. Examples for incompatible licences are the Mozilla Public License, the Qt Public License, and even the original BSD licence. It is advisable that, whenever possible, a developer or vendor should choose a licence that is compatible with the GPL, because otherwise there may be problems integrating his code with GPLed one or using both a GPL and a non-GPL compatible library. (I am not a lawyer, so I cannot conclusively say when it is legal or not).

Mozilla is an example for a large project that started out with its custom (albeit now relatively common), non-GPL compatible licence, and recently adopted a triple licence of the Mozilla Public License, the GNU General Public License, and the GNU Lesser General Public License in order to make it compatible with the GPL and to standardise its integrability. The Qt library whose commercial vendor and originator is Troll Tech Inc., also had adopted the GPL as well as its own Qt Public License, to relieve the various legal problems that KDE (a desktop system for UNIXes which is based on it) faced when using GPL code.

One relatively recent issue with the GNU General Public Licence had been the formation of Version 3 of both the GPL and the LGPL, which made programs that were only version 2 of the GPL (and not a later version) incompatible with those of the GPL version 3 or even the LGPL version 3. While some programs has been relicensed or sublicensed under version 3 of the GNU licences, a lot of software packages out there are stuck at being version 2 without an option for a later version, which make them mutually incompatible with the formerly licensed packages. Such FOSS packages include a large amount of the code of the Linux kernel, as well as Ghostscript and xpdf, which are commonly used for rendering the PostScript and PDF standards for ready-to-print-documents.

Copyleft

The copyleft definition

Copyleft means that a derived work of a copyleft software, that are not used for internal or personal use, must include the source code and released under the same terms of the original work. Copyleft is common in many licences including the GPL, the Lesser General Public License, the QPL, etc.

Many licences are not Copyleft - most notably the various BSD licences and MIT/X11 licences. Software released under such licences can be derived into a proprietary software product by a third party, and often have been.

Open Source vs. Sourceware

Not any software application that is accompanied by its source is open source, albeit many people who are new to the term would be tempted to think that. It is possible to write non-open-source software while accompanying it with the source.

Examples for such cases are:

  1. The Microsoft Visual C++ Run-Time Library and the Microsoft Foundation Classes (MFC), that are accompanied with their source.

  2. xv - a popular shareware image viewer and manipulator for X-Windows that has been distributed with its source code. Note: it is no longer actively maintained, and its developer can no longer be actively reached, and so its use is no longer recommended.

  3. qmail - a popular mail server whose source code was available and can be deployed free of charge, but its licensing terms specified that it is illegal to distribute modified binaries or sources (at least outside the organization) This is enough to make it non-open-source, but it still had been a very popular program. More recently, the source of qmail, and several related programs by the same author, were made public domain, which now makes it open-source software.

None of these packages qualify as free software, but they are all accompanied with the source. There are many others around. A quick search on the Freecode directory of UNIX software will find many such packages.

In order for a program to be open-source it needs to be free of various restrictions as specified in the open-source definition. To be free software as well, it must be also free of some other restrictions. [5]

I believe the term open-source is a bit dangerous in this regard. Then again, free software may not automatically be associated with freedom and liberty, so it isn’t perfect either. But I guess finding a description that accurately describes it in a short space is not very possible, so these terms will have to do.



[5] In a query given by an Israeli Member of the parliament in the past, to an Israeli Defence Force (IDF) representative about whether all the software used by the Israeli military is open-source, the latter interpreted open-source software as software that the IDF has access to its source. This is an even more radical deviation from the correct meaning.