Eawag Research Data Management Project

Software Licensing

Disclaimer

This is an overview of licensing options for software. The focus lies on code that is developed for and used in research and that should be made available free of charge to other researchers and the general public.

In case programmer(s), group leader, or the department consider to commercially exploit the software, please stop here and get in touch with the Knowledge and Technology Transfer Service at Empa.

If you create computer programs in the course of an employment relationship at Eawag, Eawag has far-reaching rights with regard to dissemination and use of these programs.

Eawag supports highest standards of research integrity and and champions Open Science. Therefore, Eawag makes it easy for researchers to publish software developed in the course of their work as Free/Libre Open Source Software.

Software developed at Eawag can be published freely, as long as the following conditions are met:

  1. Programmer(s) and group leader agree to publish the software.
  2. The software is published under terms that comply with the criteria set forth in the Open Source Definition (OSI, 2007).

The rest of this guide is supposed to help researchers fulfil condition 2 easily, correctly and with minimal effort. If you have special requirements though, you can use any of the OSI-approved licenses or the CC0 Public Domain Dedication.

Software Licensing How-To

Prerequisites: Figure out whether you are restricted in choosing the terms for publishing the software
1. Have all contributors to the software agreed that you publish it as Open Source?

YES ⟶ Continue to "2. Do you use third-party code as part of your program?"
NO  ⟶ talk to them and get their agreement!

2. Do you use third-party code as part of your programme?

YES ⟶
NO  ⟶ Continue to "Choose and apply the license"!

Software incorporates third party code

Find the terms under which you obtained the code. There might be a file "LICENSING", "COPYING", "RIGHTS", "USAGE" or similar in the distribution. If that fails, have a look at the website where you downloaded it.

If the third-parts software is in the public domain, you are all good.✅

Continue!

Public domain software can often be recognised by the CC0 Public Domain Dedication or the Public Domain Mark. Software created by US federal government institutions such as NASA, NOAA, EPA, ... is usually in the public domain. Check the respective website.

If the third-party software is licensed under one of the common Open Source Licenses recommended here, you are all good if you publish the combined program under the AGPL v3.

Continue!

Common Open Source Licenses recommended here are:

The Affero GNU Public License (AGPL v3) is the most compatible one among the popular Open Source Licenses.

If the third-party software is licensed under a different Open Source License, which is listed as GPL-compatible, you are all good if you publish the combined program under the AGPL v3.

Continue!

The Free Software Foundation maintains a list of GPL-compatible licenses. The Affero GNU Public License (AGPL v3) is the most compatible one among the popular Open Source Licenses.

If you can't find a license or a public-domain dedication, you can't re-distribute the software as part of your work.
Get in touch with the vendor or programmer of the third-party software and obtain permission.

If you obtained the software under a proprietary license, you usually can't re-distribute the software as part of your work.
Proprietary licenses are most often attached to software you had to buy and they usually prohibit re-distribution. Get in touch with the Eawag RDM Team to try find a workaround.

Choose and apply the license

There are three broad categories of license type that can be applied to research software. Eawag recommends to use the Affero GNU General Public License Version 3 (AGPL v3). This strong Copyleft license is the most compatible Open Source license and can be applied to most programs that incorporate third-party code under Open Source licenses.

Apply the AGPLv3!

The AGPL v3 guarantees the sustainable availability of the source code of your work as well as that of future derivatives, improvements and adaptions. Therefore it is best suited to support Open Science, reproducibility and transparency.

Other type of licenses suited for research software are permissive licenses and a copyright waiver that places your work in the public domain.

"Copyleft" licenses usually refer to the family of GNU Licenses published by the Free Software Foundation. The recommended version for researchers is the GNU Affero General Public License (AGPL) v3. These licenses aim to guarantee that the licensed software is and remains Free in the sense that "users have the freedom to run, copy, distribute, study, change and improve the software". The GNU/Linux operating system (commonly called "Linux") is Free Software.

Advantages

  • Compatible with reproducibility and transparency requirements of good scientific practice.
  • Legal requirement to credit the original author in the form of a retained copyright statement.
  • The most compatible license among Open Source licenses: It can be used for programs that incorporate third-party code obtained under the vast majority of existing Open Source licenses.
  • Reciprocity requirement: All improved versions and derived works can only be distributed under the same license, thus forcing companies who profit from your code to give back their additions and improvements to the community.
  • Ensures that future improvements, changes and derived versions of the software remain Open Source so that the scientific community and the general public continue to profit from it.

Disadvantages

  • The "reciprocal" nature of the license makes it more difficult to exploit such code commercially. If the code is supposed to be used commercially in the future, for example forming an asset of a spin-off, or if the code is created within a collaboration with the private sector, please consult all stakeholders before publishing it under a copyleft license (or any license for that matter).

How to apply

  1. Download the GNU AGPL v3 license text and place it in a file named COPYING in the top directory of your software distribution.
  2. Include the following notice at the top of each file in the appropriate comment syntax
    ("<AUTHOR NAME>" should include "Eawag", e.g. "Billy Ocean, Susan Streamflow and Eawag"):
    
    Copyright <YEAR> <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
    
    This program 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
    Affero General Public License for more details.
    
    You should have received a copy of the GNU Affero General Public
    License along with this program.  If not, see
    <https://www.gnu.org/licenses/>.
    			

If you put software in the "Public Domain", you cede all rights (the "copyright") to the software and donate it to the world. This was the dominant mode of publishing research software from the beginning of research software into the 1990ies. Software developed by US federal employees has to be published in the Public Domain. Publishing research software into the Public Domain is still popular with researchers who do not want to have anything to do with legal issues and believe that research output should belong to humanity. Note: Technically this is not a "license" but rather a "waiver".

Advantages

  • Maximum ease of re-use. Your software can be combined with any code and re-published under any conditions .
  • Escape from any legal considerations and entanglements
  • Compatible with reproducibility and transparency requirements of good scientific practice.

Drawbacks

  • No legal requirement for (re-)users to credit you. While giving credit is a community-norm in academia, is is sometimes forgotten with regards to software. You can improve the situation by adding a reminder to the software distribution that you expect to be credited, and how (e.g. "cite my paper ...").
  • The software will be available for use you might consider freeloading, because it can easily be re-packaged, renamed and sold ...

How to apply

Include the following notice at the top of each file:


Written in <YEAR> by <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>

[other author/contributor lines as appropriate]

To the extent possible under law, the
author(s) have dedicated all copyright and
related and neighboring rights to this
software to the public domain worldwide. This
software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain
Dedication along with this software. If not, see
http://creativecommons.org/publicdomain/zero/1.0/.
		

It is also recommended that you include a file called COPYING containing the CC0 legalcode as plain text in root directory of the distribution.

This recommendation was taken from the Creative Commons Wiki which is made available under the Creative Commons Attribution 4.0 license.

"Permissive licenses" have gained a lot popularity since the 2010s, but not necessarily among researchers. The main practical difference, compared to the Public Domain, when applied to research software, is the legal requirement to give the original creator of the software credit in the form of a retained copyright statement when the software or derived works are re-distributed.

Advantages

  • Excellent ease of re-use. Your software can be combined with any code published under a common free-software license to create added value.
  • Compatible with reproducibility and transparency requirements of good scientific practice.
  • Legal requirement to credit the original author

Drawbacks

  • The software will be available for use you might consider freeloading, because it can easily be re-packaged, renamed, re-licensed and sold ...
  • The software can be "closed", meaning that anybody can re-distribute it, or future versions of it, without the source code, thus making it unfit for use in scientific work.

There are a large number of licenses in this category but the two most popular ones should be sufficient to cover the vast majority of use cases:

MIT License (Expat License)

Features

  • Very short, easy understandable license text.

Apache 2.0

Features

  • Includes a "patent grant". This means that a license is also granted for any patents that the software may incorporate. This is mainly interesting for commercial use of the software, where it reduces the business risk.

How to apply

Include the following notice at the top of each file in the appropriate comment syntax
("<AUTHOR NAME>" should include "Eawag", e.g. "Iesha Interflow and Rudi Recharge and Eawag"):

Copyright <YEAR> <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>

[other author/contributor lines as appropriate]

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
		    
Include the following notice at the top of each file in the appropriate comment syntax
("<AUTHOR NAME>" should include "Eawag", e.g. "Iesha Interflow and Rudi Recharge and Eawag"):

Copyright <YEAR> <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>

[other author/contributor lines as appropriate]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
		    

Include a file called COPYING containing the Apache 2.0 legalcode as plain text in root directory of the distribution.

Proprietary software is all software that is made available under conditions that do not allow free use, modification and re-distribution. Using proprietary software to generate research results is a problem because it usually prohibits or hinders reproducibility and transparency, which are core scientific principles.

Software written by researchers often becomes proprietary by accident: If you do not license your software, copyright law ("Urheberrecht") applies automatically. Any software encumbered with full copyright restrictions is practically not usable for other researchers. It is important that you license your software or waive the copyright!.

Even if the copyright restrictions of your software are not mitigated by a licence or a copyright waiver, everybody can run it as they see fit.

If your software provides you a competitive advantage and you do not want other researchers to profit from it, you have to keep it secret. There is no obvious way to keep part of your methods (the software) secret and at the same time have your results recognised as valid scientific output.