Ersilia Book
Search…
⌃K

Open source licences

How to deal with the different Open Source Licences when incorporating code developed by third parties in the Ersilia Model Hub.
In the open-source community, while open-source software is available to all, there is still the need for licences to guide users on the rights and permissions in the use of the software. At Ersilia, we release our code using a GPLv3 Licence.
This article is a guide to licence third-party code to be incorporated into the Ersilia Model Hub.

Terms

  • Licence: grant by the holder of a copyright or patent to another of any of the rights embodied in the copyright or patent short of an assignment of all rights (Merriam Webster)
  • Open Source (OS) Licence: type of licence for computer software and other products that allows the source code, blueprint, or design to be freely used, modified, and shared (Open Source Initiative)
  • Source Code: version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human-readable alphanumeric characters) (Linux Information Project).
  • Copyright: exclusive legal right to reproduce, publish, sell, or distribute the matter and form of something (Merriam Webster).

Types of Open Source Licences

OS licences fall under two types: Permissive licence and Copyleft licence.
  • Permissive licences give users fewer restrictions when using source code. Users can take the permissive-licensed software, make it their own through changes or additions, and distribute that modified program with only a handful of conditions [1]. Some popular examples of permissive licences include MIT, Apache, BSD etc.
  • Copyleft licences are more restrictive than permissive licences. Generally, they require that any derivative work of the copyleft-licensed software be released under the same licence as the original [2]. Some examples of Copyleft licences are AGPL, GPL, LGPL, Mozilla etc.

Permissive Licences

  • MIT licence [3] allows use of the source code without restrictions and limitations, even for commercial purposes, on the condition that the original copyright and licence notice are included in all copies and all substantial copies of the source code. The MIT licence is compatible with most licences like the GPLs. When incorporating code MIT-licenced, please keep the original copyright and licence notice on the folder where the source code is and reference it in the README file.
  • Apache licence [4] allows use of the source code without restrictions as long as the original copyright and licence notices are included in the copies, modified files carry the notice that they have been modified and include a NOTICE file, if there is one, in your copy. The Apache licence is compatible with most licences but it is not compatible with GPLv2. When incorporating code MIT-licenced, please keep the original copyright and licence notice on the folder where the source code is and reference it in the README file. If modifications have been done to the original code, create a NOTICE file explaining such modifications.
  • BSD 3-Clause licence [5] is short for Berkeley Software Distribution 3-Clause licence. It allows users to use source code with its licence without restrictions and limitations as long as the original licence is kept and the source code’s author and contributors are not used to promote the distributed derivative works. When incorporating code BSD-3-licenced, please keep the original copyright and licence notice on the folder where the source code is and reference it in the README file.

Copyleft Licenses

  • GNU Public Licence (GPL) version 3 [6] requires that derivative works of the source code with its licence keep the licence, modified files should be marked as changed and the software should not be privatised or become proprietary. This is the preferred licence for Ersilia's software, since it ensures code will remain open to all. If incorporating code already licensed under GPLv3, simply add the LICENSE.md file on the root of the repository and create NOTICE.md file for any modifications.
  • GNU Affero General Public Licence (AGPL) [7] lets users distribute source code and even charge for the software. It requires that derivative works maintain the AGPL and modified files carry the notice of being modified. When incorporating code AGPL-licenced, please keep the original copyright and licence notice on the folder where the source code is and reference it in the README file. Also create a NOTICE.md file in the relevant folder for any modifications.
  • GNU Lesser General Public Licence (LGPL) [8] permits users to copy and distribute verbatim copies of the licensed source code but users should not change the source code. When incorporating code LGPL-licenced, please keep the original copyright and licence notice on the folder where the source code is and reference it in the README file.
  • Mozilla Public Licence [9] requires that derivative works should maintain the licence. It permits distribution, modification, and even using the software for commercial purposes, but the original code and its modifications must maintain the MLP licence. When incorporating MPL-licenced code, maintain the licence notice for the specific folders where source code is.
If the license you are dealing with is not described here please refer to the sources used to write these guidelines and contact the Ersilia team ([email protected]):
  1. 1.
    Mahak Bandi. All About Open Source Licenses. FOSSA [10]​
  2. 2.
    Mahak Bandi. All About Open Source Licenses. FOSSA [11]​
  3. 3.
    The MIT License. Open Source Initiative. Accessed June 2022 [12]​
  4. 4.
    Apache License, Version 2.0. Open Source Initiative [13]​
  5. 5.
    The 3-Clause BSD License Open Source Initiative [14]​
  6. 6.
    GNU General Public License Open Source Initiative [15]​
  7. 7.
    GNU Affero General Public License Open Source Initiative [16]​
  8. 8.
    GNU Lesser General Public License Open Source Initiative [17]​
  9. 9.
    Mozilla Public License Open Source Initiative [18]​