Open Source Software (Policy)
Other relevant information about software, licensing and guidelines
ETH Zurich supports open source software, both through the internal use of such products and also by distribution by the ETH Zurich.
However, the licensing of software under an open source license should be examined carefully in advance.
When doing so it is important to ask oneself the following questions:
- What do I want to achieve by licensing under an open source license?
- Might I want to cooperate at a later stage with companies that market software or might I subsequently want to market the software myself?
- Which license out of the various open source licenses should I choose?
Please contact us in order to find answers to these questions and in general to assess whether an open source licensing or another type of license is the appropriate way to distribute the software. We can then compare this type of licensing with academic licensing or closed source freeware (i.e. free for users, but with no access to the source code).
Please do not hesitate to contact us if you need any advise regarding licensing of software under an open source license.
Guidelines
According to the "ETH Zurich Exploitation Guidelines" Download RSETHZ 440.4 (PDF, 267 KB), the software coders together with the professor(s) responsible for the software are permitted jointly to decide whether to distribute software under an open source license recognized by the external page Open Source Initiative.
However, it is important to note that, according to the exploitation guidelines:
- the open source software must be registered at the ETH Data Archive (please see below);
- no fee is required from ETH Zurich, the research group, or the creators (authors of the program code), for the distribution of the open source software to the licensees.
- the professor(s) responsible for the software and authors of the program code must ensure compliance with the ETH Zurich Exploitation Guidelines and that all the required criteria to license the software under an Open Source License are fulfilled. In particular, that no third parties have any rights in the software or part of it that preclude open source licensing (e.g. if code, integrated in the software, was developed during a project with an industrial partner or developed by a third party). Please see also "Terms for registration".
Export Control and Open Source Software
Open Source Software is usually distributed unrestricted over public platforms like GitHub, SourceForge or GitLab (on premise) to anyone, and you should assume that the software is exported outside the border of Switzerland/Lichtenstein.
If you are distributing the software for the first time (i.e. that has never been distributed or exported before) and the software is on the export control list, please note that such software requires an an export authorization from the State Secretariat for Economic Affairs (SECO) before you are allowed to distribute the software under an Open Source License on publicly accessible platforms.
It is responsibility of the professor(s) to verify whether a software is listed as controlled item and an authorization from the SECO is required.
We warmly recommend to verify in advance whether an export authorization is needed in case your software is a:
- Software for Information Security
- Software for Surveillance/Control of the Internet and Mobile Networks
Please consider also, that in case a controlled software is embeded or implemented in hardware, for example as firmware or in a FPGA, automatically also the hardware is a controlled item.
For more information, please see also the information here.
Registration of Open Source Software
Software that you want to distribute under an Open Source License must be registered with the ETH Data Archive. The ETH Data Archive is a long term repository.
If you are using the ETH Data Archive for the first time, you must first register yourself there. A user account will then be set up for you which is valid for the registration of open source software. The activation of your user account usually takes place within one working day.
A detailed handout with screenshots provides a description in English of the necessary steps for the first registration as well as the registration of the open source software. For the registration of open source software, please follow the OPEN Source Software procedure of the handout.
The source code, the documentation files of the software (manual) and a file named “LICENSE”, “license.txt” or “LICENSE.TXT”, containing the text of the chosen license, must be packed into a zip/tar container and the zip/tar container uploaded to the ETH Data Archive of the ETH Zurich Library.
Important!
- Please do not upload data, documents that are not related to the source code or other material together with the software. Only the human readable code (source code) shall be registered with its manual (if any). Please delete all data and other material before registering the software. The registered software does not need to work.
- Copyright Notice: We warmly recommended that, for software coded by ETH Zurich employees, a ? or (c) mark is included in a clearly visible place, or in the comment lines of the source code, along with the name of the exploitation right holder (ETH Zurich), the author(s) (the software coder) and the year of first distribution (please see also below).
When the registration process is completed, you will receive a DOI number enabling other persons to download the zip/tar container containing the source code directly via the ETH Zurich Library.
However, we recommend to distribute the source code of the open source software also on other open platforms such as GitHub, GitLab, SourceForge, etc..
If the software changes substantially over time, it is advisable to register new major versions of the open source software.
During the registration process at the ETH Data Archive the responsible professor, or the person designated by him/her, must accept the "Terms for registration".
Copyright notice (i.e. copyright of ETH Zurich)
The registration of copyrights is not possible in Switzerland, it is also not required to make an explicit reference to the copyright.
However, since there are countries in which copyright can be registered and in which clear references must be made to the copyright and to the holder of the exploitation rights (ETH Zurich), it is recommended that, for software coded by ETH Zurich employees, a ? or (c) mark is included in a clearly visible place along with the name of the exploitation right holder (ETH Zurich), the author(s) (the software coder) and the year of first distribution.
Therefore, before you register the open source software at the ETH Data Archive, we warmly recommend to include in the comment lines of the source code or in a clearly visible place (1) the year in which the software was first distributed, (2) the exploitation right holder (ETH Zurich) and (3) all authors of the software (software coders), as is customary practice in the software development context.
Example of copyright notice:
- ?2016-2021 ETH Zurich
- ?2016-2021 ETH Zurich, name of coder 1, name of coder 2, etc.
- ?2016-2021 ETH Zurich, name of coder 1, name of coder 2, etc.; D-?XXXX; Name of Institute; Name of Professorship
Please note that the program external page coders may waive their right to be named.
Which license should I choose?
ETH Zurich is not recommending any specific open source license. Any license you choose from the external page Open Source Initiative is fine.
The majority of the ETH Zurich researchers use a MIT, BSD, Apache v2, or a GPL, AGPL license.
Within the open source licenses two broad categories exist, the permissive licenses and the copyleft licenses (please see below).
Please note, that most open source licenses are not compatible with each other. See also below the section "Compatibility of Licenses".
Permissive licenses (e.g. MIT, BSD, Apache v2, etc.)
The permissive licenses comes with only minimal restrictions how the software can be used, modified and redistributed. Almost all permissive licenses requires that the copyright notice shall be maintained if you modify the software or integrate/embed such a software in your own program code, and it generally includes a warranty disclaimer.
Program code under a permissive license can be modified or integrated in another software, and the new obtained program code can be distributed under a different license, theoretically also under a proprietary closed source license.
See also external page Wikipedia for other information on permissive licenses.
Copyleft licenses (e.g. GPL, AGPL, etc.)
According to external page GNU, copyleft is a general method for making a program code (or other work) free (in the sense of freedom, not “zero price”), and requiring all modified and extended versions of the program code to be free as well.
Program code distributed with a copyleft license requires that the same license be preserved in derivative works created from that program code and the same license is maintained in case the such program code is further distributed.
Any software created using an open source component with a copyleft license must be distributed as open source with the same license as well. The result is that any software product containing an open source copyleft license, even when it is only a few lines out of mountains of code, must make its entire source code available, along with the rights to modify and distribute it.
See also external page Wikipedia for other information on copyleft.
Compatibility between different open source licenses
Most permissive licenses are incompatible with a copyleft license, and vice versa. Even licenses of the same category are most likely incompatible. You are on the safe side if you are not combining/using program code with different open source licenses and if you consider also the two categories as incompatible with each other.
We recommend to verify in advance whether two open source licenses with different license conditions are compatible with each other.
Please verify also in advance the license conditions in case you integrate program code under an open source license with program code for which ETH Zurich has the exclusive exploitation rights (i.e. developed by ETH Zurich employed personnel) as this might jeopardize any future commercial exploitation.
See external page here for compatibility between the open source licenses from Wikipedia.
Why are the Creative Commons licenses not included in the OSI list?
The Creative Commons licenses are not included in the Open Source Ininitiatve (OSI) list, because they are not considered suitable for program code (software). Creative Commons licenses have been created and are intended for copyrighted works that are not program code. And the Creative Commons licenses do not meet the requirements set by the open source movements (e.g. Open Source Initiative and Free Software Foundation) as minimum requirements for recognition as an open source license.
For additional explanations of why you should not use a Creative Commons license for software, please also read the FAQ from Creative Commons external page here.
Commercial purpose?
All open source software can be used for commercial purpose and the external page open source definition guarantees this. Theoretically software under an open source license can be sold. However, note that commercial is not the same as proprietary. If you receive software under an open source license, you can always use that software for commercial purposes, but that does not always mean you can place further restrictions on people who receive the software from you.
Please see external page here or external page here.
Obligation to re-publish/re-distribute code under an open source license?
Only very few open source licenses oblige to redistribute/to re-publish an open source software after the open source software has been modified by you.
The majortity of the open source licenses does not require the redistribution of a derivative program code. You can modify an open source software, use it and not redistribute the modified program code. The open source license acts only on the modified program code in case you redistribute the derivative program code to someone else. The receiver of such derivative program code receives all the freedoms to use and modify further the received derivative program code.
Please read carefully the open source license in advance in case you do not want to redistribute a derivative program code of an open source software and to maintain it secret.
However, please consider that, if you do not redistribute the derivative program code on a public repository, then you are not really following the spirit of "Open Source".
For any additional information regarding software licensing to third parties, please contact the IP & Licensing Group.