Proposal to change license
This is a proposal to change the license of the Octopus sources.
Motivation
Over the years, Octopus has greatly benefited from the availability of libraries that implemented useful features. Sharing and reusing code in this way is something that we have always encouraged. Some code has also been extracted from Octopus and used in other projects, Libxc being the main example of this. Unfortunately the current license that we use, the GNU Public License (GPL), imposes some severe restrictions on the codes that want to reused some code from Octopus. To make it easier for other projects to reuse code from Octopus, we propose to change the license to something less restrictive.
Licenses and external libraries
Software licensing is a complicated subject, so the following comes with the usual warning: none of us is a specialist in the subject, so please consult a lawyer if you have any doubts or need professional advice.
Among other things, software licenses tell us how software can be distributed, that is, they impose restrictions on how the software can be used and distributed. For example, the GPL says that sources used to create a binary distributed under the GPL need to be distributed along with such binary. Because Octopus uses several external libraries, which in turn have their own licenses, when combining all those sources to build and run the executable, all the licenses (Octopus + external libraries) must be compatible among themselves. What does this mean? It means that all conditions imposed by all the licenses must be fulfilled when distributing the code.
Since some of the external libraries used by Octopus are themselves GPL (e.g., GSL), this in turn implies that whatever license we choose for the Octopus sources, it must be compatible with the GPL. This also means that the sources must be distributed under the terms of the GPL, as that is one of the conditions the GPL imposes.
From what is written above, it would seem like there is little point in changing the license of the Octopus sources, since they would anyway have to be distributed under the terms of the GPL. However, if someone took some of the Octopus sources that are not licensed under the GPL and used them in their own project, those sources would not be bound by the GPL terms anymore. This would fulfill the goal set above of making it easier for other projects to reuse code from Octopus.
Choice of new license
The proposal is to re-license as many source files as possible under the Mozilla Public License 2. This license is compatible with the GPL. An alternative would be the Apache 2 license. In practice the two licenses are very similar, but the MPL2 requires that any changes to the code be made available under the MPL2. We think this is a desirable feature, as we would like any changes made to code that was originally part of Octopus to remain open-source.
More information about the MPL can be found here. Information about the compatibility of MPL2 with the GPL can be found here and here.
What is required to change the license
In order to change the license for a given source file, all the copyright owners of said file must agree with the change. Answers from copyright owners will be gathered in this issue.
Who is a copyright owner?
Anyone who has made some significant contribution to a given file is a copyright owner for that file's code. Changing indentation, removing white spaces or fixing typos in the documentation clearly does not qualify as significant contributions. All sources files in Octopus have a copyright header listing who holds the copyright, but unfortunately many of them haven't been kept up to date. This means that, in case of doubt, we will have to look at the git history to see who are the actual copyright owners of a given file.
What if a copyright owner does not agree with the change of license?
If a copyright owner does not agree with the proposed change, all files that have said person as copyright owner will remain licensed under the GPL.
When is the change happening?
As soon as we have enough positive answers in the comments of this issue, we will start changing the copyright of the files whose authors have agreed with the changes. This will likely take several merge requests. We will keep this issue open until either the license of all files has been changed or all known Octopus authors have told us if they agree or not with the change.