Guidance for Creators of Open Source Software

Imperial's preferred open source software licence is the BSD licence (either 2-Clause or 3-Clause).  Under an open source software (OSS) licence, both the source and object codes are released to the licensee allowing developers to analyse, modify and enhance the product.  For further information, please refer to: the Open Source Initative and OSS Watch

Software creators who wish to licence their software for free (i.e. object code only) do not require an OSS licence and should contact Research Services for a bespoke, free software licence or an academic software licence.  For advice on commercialising software contact your Faculty’s IPC Team.

For standalone software (i.e. software that does not incorporate other software or is not a derivative of other software), there are several steps to follow to determine the most appropriate licence. 

  • Step 1: Obtain written permission to include third party code in an OSS release if the software includes code from your work at a previous institute or company or collaborator and publish the code in accordance with the terms of the written permission. 
  • Step 2: Follow a funder’s terms and conditions if the they stipulate how the software should be released. 
  • Step 3: If you would like to ensure all the derivatives of your software are released under an open source licence then release the software under a GNU GPL style licence. 
  • Step 4: If you have a patent associated with the software that is being commercialised by the College, contact your IPC Team for advice on releasing the software. 
  • Finally, step 5: If you wish to release the software with a simple, commonly-used licence that has a disclaimer then release under a BSD-style licence. 

Types of Licence

OSS licences can fall under two categories; permissive and restrictive.  Permissive licences include the BSD, MIT-style and Apache licences. Their permissiveness allows for modified or enhanced software to be released under any new form of licence including a commercial licence.  As such, OSS code can be combined with proprietary code to form a software product that can be sold under a commercial licence.  

Restrictive licences comprise the GNU family of licences promoted by the Free Software Foundation (http://www.gnu.org/).  They are constructed around the ‘Copyleft’ principle which requires derivative software to be distributed under the same OSS licence terms.  It is a method for making software available and enabling them to be modified provided that all modified and extended versions of the program are made available under the same terms.

GNU licences can be covered by ‘strong conditions’: e.g. GPL (General Public Licence). The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program.  If the modified software is distributed; all software must be covered by the same original GPL licence.  This includes releasing the source code of any modification or additions. GPL-licensed software cannot be incorporated into a commercial system and then re-released under a commercial licence.

Alternatively, there are less restrictive licences for ‘weak conditions’: e.g. LGPL (Lesser General Public Licence).  With this licence, it is allowable to have a variation of parts released under different licences e.g. some parts of code must be distributed under original licence; other parts may be distributed under different licences.  Precise areas of code need to be defined and attributed to a particular licence. GNU LGPL is commonly used for software libraries.

College Preferences

Use of permissive BSD 2- or 3-clause licence is preferred.

Copyright notice must be included. This should refer to “Copyright © 2014, Imperial College, London, All rights reserved.” only.  This is to ensure a consistent branding message is maintained.

A copy of the licence terms and conditions must be placed or linked prominently on the webpage.

An example of the 3-clause license template is below:

Copyright (c) 2013, Imperial College, London
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of Imperial College nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Please refer to http://www3.imperial.ac.uk/webguide/ for advice on how to set up a suitable webpage.

Please be aware that if software was developed outside of normal College duties, it should not be launched from the College website.

Derivative software

Modification of software code may result in the creation of derivative software that can be licensed under a different type of licence.  The licence for the derivative software is dependent on the type of licence the original software was released under.  Modifications or derivatives can be released as follows:

Original Software Licence

New Software Licence

GPL

GPL

LGPL

GPL or LGPL

MIT / BSD 2-clause etc.

Same or another licence

Areas for Consideration when Selecting a Suitable OSS licence

Complying with one software licence can result in inconsistencies between and when complying with other software licences.  Follow the guidance below when choosing an appropriate OSS licence:

  1. Sponsors’ terms - Before releasing software, any sponsor rights must be considered as there may be restrictions which prevent the source code of the software from being publicised as open source. Any program, containing other software/code provided by a collaborating third party or which has been downloaded as open source software may contain specific or restrictive licence terms.
  2. Term’s for using embedded code - All third party code and materials which have been embedded in the software should be considered. The related licensing terms should be reviewed and complied with.
  3. Multiple OSS licences - Any application which links many different components has the potential to be covered by several different licences.  In order to establish which licences may be used, a list of each component that the program uses and the licence of that component should be prepared. This enables a licence review to be carried out with a focus upon potential encumbrances upstream in regard to future funding and use. When selecting a licence for derivative software that includes code acquired under several OSS licences it is wise to release the derivative work under the licence with the strongest terms (see table above) i.e. if the derivative software includes MIT, BSD and GPL licensed software then the new software should be released open source under a GPL licence.
  4. Stand-alone software - GPL-licensed software may be distributed alongside, i.e. in addition to the software of a commercial system. In order for this to be valid and not infringe the licence terms, the free and non-free programs should communicate at arm’s length, in such a manner that they are not combined in a way that would suggest they are effectively a single program.
  5. Discussions with IPC Team – Please contact your Faculty’s IPC Team who will be able to provide you with timely and appropriate advice and guidance, if you believe that the software you have created has commercial potential. Please note, if you wish to generate software for a particular purpose, it is important to ensure that the terms governing the incorporation of any open-source software is compatible with the intended end use. 

NB Programs used to edit the source code, or to compile it, or study it, or record it, or are required to operate it, do not usually effect or cause problems with the licensing of that source code.