The Open Source Initiative (OSI) is a California (USA) based not for profit organization that spearheads the open source movement around the world.
To qualify as “open source”, particular software must comply with several conditions. In order to understand these conditions, let us take a fictional illustration. Sanya has developed easyPDF – software for converting documents into PDF (portable document format). Sanya wants to release easyPDF as open source software. EasyPDF must comply with the following conditions:
The easyPDF license cannot restrict anyone from selling or giving away the easyPDF software as a component of an aggregate software distribution.
Sameer advises small companies on using technology to streamline their business processes. He also sells software (including easyPDF) to such companies. Sanya cannot stop Sameer from selling easyPDF
Siddharth uses easyPDF along with some code developed by him to create easyWord, word processing software. Sanya cannot stop Sameer from using the easyPDF software as part of easyWord.
The easyPDF license cannot provide for royalty or other fee for such sale or distribution.
In the previous illustrations, Sanya cannot charge Sameer or Siddharth any royalty or fee for selling or using easyPDF.
The easyPDF software program must
- include source code, and
- Allow distribution in source code as well as compiled form.
easyPDF is not distributed with the source code. However, when easyPDF is started up by a user, a message is flashed on the user’s screen. This message contains details of the website from where the easyPDF source code can be downloaded for free. This is acceptable.
easyPDF is not distributed with the source code. However, a CD containing the easyPDF source code can be obtained by sending the cost of postage and the cost of a blank CD to Sanya. This is acceptable
The easyPDF source code must not be deliberately obfuscated. Obfuscated code (also called shrouded code) is source code that is very difficult to read and understand. Programs known as obfuscators can make source code very difficult to read and understand.
Let us take a simple illustration of obfuscated code. The following basic code can be put in a webpage:
Click here to visit Sanya Nagpal's website</a>
The webpage will display a link to sanyanagpal.com and will look something like this:
Click here to visit Sanya Nagpal's website
The obfuscated code will look like the illustration below:
The easyPDF license must allow modifications and derived works. The license must also allow the modified or derived works to be distributed under the same terms as the easyPDF license.
Integrity of the author's source code
The easyPDF license can restrict the source-code from being distributed in modified form under some conditions that are illustrated below.
The easyPDF license allows others to include “patch files” along with the original easyPDF source code. The “patch files” can modify the easyPDF program at the time when it is compiled.
The easyPDF license can state that the derived works must have a different name.
Sanya has release easyPDF version 1. The license can state that the derived software must have a different version number.
No Discrimination against Persons or Groups
The license must not discriminate against any person or group of persons.
The easyPDF license cannot state that Pakistani citizens cannot use the program.
No Discrimination against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
The easyPDF license cannot state that it cannot be used in commercial organizations or banks etc.
Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
Sanya is distributing the easyPDF software from her website. Sameer copies the easyPDF source code and program and distributes it from his website. Pooja downloads easyPDF from Sameer’s website. The rights attached to easyPDF now automatically lie with Pooja also.
License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program being part of a particular software distribution.
Sanya is distributing the easyPDF software along with a group of other software that she has developed. Collectively this group is called the easySuite and distributed by Sanya as open source.
Sameer extracts the easyPDF program from easySuite. He then distributes easyPDF to Pooja.
Pooja will have the same rights as those granted by easySuite.
License Must Not Restrict Other Software
The easyPDF license must not place restrictions on other software that are distributed along with it.
The easyPDF license cannot state that all programs distributed on the same CD must be open source software.
License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.
The easyPDF license cannot be a click-wrap license i.e. it cannot ask users to click on an “I Accept” button.
This is because "click-wrap" agreements are not possible in many cases such as FTP download or where the source code is run in a command line / non-GUI (Graphical User Interface) based environment.
GNU General Public License
Many popular software programs come with a license similar to the one illustrated below:
This file is part of the easyPDF Software Suite.
easyPDF Software Suite is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 or any later version as published by the Free Software Foundation.
easyPDF Software Suite is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with easyPDF Software Suite.
If not, see <http://www.gnu.org/licenses/>
GNU General Public License (GNU GPL) is one of the most popular licenses in contemporary software.
Essential features of GNU GPL version 3 are:
It is a copy left license for software and other kinds of works.
Copy left is a general method for making a program or other work free, and requiring all modified and extended versions of the program to be free as well.
Copy left mandates that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it.
Usually, to copy left a program, the programmer first states that the software is copyrighted. Then he adds distribution terms and conditions which are a legal instrument. These terms give everyone the rights to use, modify, and redistribute the program's code or derivatives only if the distribution terms are unchanged.
Copy left is thus the opposite of copyright. Copyright takes away a users freedom while copy left guarantees the freedom.
GNU GPL guarantees the freedom to share and change all versions of a program. This ensures that the software remains free software for all its users.
GNU GPL covers free software. This does not imply that there can be no money charged for the software. It refers to freedom to do the following:
- to distribute copies of the software
- to run the software for any purpose
- to sell copies of the software
- to access the source code
- to modify the source code
- to study how the software runs
- to change and adapt the software
- to use parts of the software for new free programs
The GNU GPL prohibits the registration of patents that can make the software “non-free”.
The following illustrations will clarify some of the conditions of the GNU GPL. The illustrations are based on a fictional situation where Sanya has developed easyPDF – software for converting documents into PDF (portable document format). The easyPDF software and its source code have been released under GNU GPL. Sanya holds the copyright over the source code as well as the software.
Sanya can sell the easyPDF software and / or source code for any price that she deems suitable.
Sanya can charge a fee for downloading the easyPDF software and / or source code from her website.
Sameer pays a fee and downloads the easyPDF software from Sanya’s website. Sameer can now distribute the software for free from his website, on CDs etc.
Pooja gets the software free from Sameer’s website. Pooja is not required to inform Sanya about receiving the software. She is also not required to pay Sanya any fees.
Sanya cannot ask Sameer to enter into a non-disclosure agreement in respect of the easyPDF software / source code.
Sameer modifies the easyPDF source code. Sameer cannot ask Pooja to enter into a non-disclosure agreement in respect of the modified easyPDF software / source code.
Noodle Ltd has requested Sanya to make some modifications to the easyPDF source code. Noodle Ltd and Sanya can enter into a non-disclosure agreement whereby Sanya cannot disclose these modifications till Noodle approves them.
Noodle can insist that Sanya cannot release the modified software / source code to anyone else without their permission.
Noodle has the right to distribute the software / source code to others without Sanya’s permission.
Sanya can write a copyright notice in her own name in the license. E.g. the easyPDF source code files can have the following notice: Copyright © 2008 Sanya Nagpal.
Sanya can simultaneously release the easyPDF source code / software under the GNU GPL as well as under a commercial license.
Sameer wants to use the easyPDF source code along with the easyBook source code (created by Pooja) and combine them to create a new software program.
If the licenses of easyPDF and easyBook allow the source codes to be combined then the two licenses are said to be compatible. If not, the licenses are incompatible.
Some licenses may allow linking of the codes but not merging their code into one module.
The licenses of two programs need not be compatible in case the programs are simply required to be installed in the same computer.
Sanya cannot license the easyPDF software / source code to Sameer for exclusive use. The GNU GPL license cannot be revoked.
Sanya cannot force users of easyPDF software / source code to make their PDF documents open source. She has no rights over the documents created by others using easyPDF.
However, if the easyPDF program copies part of itself onto the output, then the output would also come under GNU GPL.