Help discuss a modified license text
Posted: Tue Sep 01, 2020 7:22 am
We need to do something about the current license.
As a historical parenthesis, the current license setup was formulated as a compromise a long time ago. The discussion back then was between strong copyleft proponents and people who wanted maximum freedom for artists. The final result was the dual setup where exported graphical assets was considered CC0 (under a few conditions), whereas the source code was AGPL.
However, things looked very different back then. This was before the new blender integration, before scripting via MHAPI, before MHX was broken out from the main code and before the asset repositories. The only way to get a result from MakeHuman back then was by going to the file menu and do an export.
Because of the development during the last few years, the license setup no longer makes any sense. In many situations it is simply incomprehensible and impossible to apply. Thus the need for a change.
There are some limits on what we can do though. The hard boundaries are these:
We cannot change the source code license to anything more permissive than GPL, and probably not from AGPL in the first place. There are two reasons for this:
What we can do is reformulate how graphical assets are treated, and what constitutes a graphical asset. The goal with all this would be to remove any lingering doubt concerning whether a used asset under some circumstances might have been covered by AGPL.
There have been a lot fewer contributors involved in assets, and we feel confident that we (in a worst case scenario) could remove any asset which was not possible to change. Also, according to the current license, all we need to do in order to get an asset licensed CC0 is to export it from MakeHuman.
Further down is a proposed new license setup. The functional before/after changes are these:
BEFORE: Bundled assets are a part of the application
AFTER: Bundled assets are something the application uses, but which are otherwise considered standalone entities
BEFORE: Assets are per default covered by AGPL
AFTER: Assets are per default released as CC0
BEFORE: Exports become covered by CC0 upon export via the GUI
AFTER: Exports only consist of things which were CC0 to start with
BEFORE: Targets, proxies and the base mesh are considered source code, covered by AGPL (unless exported via the GUI)
AFTER: Targets, proxies and the base mesh are considered graphical assets, covered by CC0
BEFORE: Trying to "reverse engineer" or recreate the targets is prohibited
AFTER: Targets are CC0 no matter how you got hold of them
Now, none of us in the dev team is a lawyer. And we cannot afford to hire a lawyer to help us with all this. We can only act in good faith and hope that the community helps us point out flaws and weaknesses in the proposed license setup.
However, no matter what we'll do, there will always be fringe cases that you could construct if you think hard enough and insist on playing the devil's advocate. There's no way around this short of formulating an Apple kind of you-may-not-use-your-iphone-as-a-nuclear-warhead kind of 64-page EULA. Which would be the opposite of formulating a simple and easily understandable license text.
The following is a draft of a new license text. The text does not in itself constitute a license change as of yet. So far it is only a discussion.
Please suggest ways of improving it, even if it's only adjusting a spelling mistake or some bad grammar.
As a historical parenthesis, the current license setup was formulated as a compromise a long time ago. The discussion back then was between strong copyleft proponents and people who wanted maximum freedom for artists. The final result was the dual setup where exported graphical assets was considered CC0 (under a few conditions), whereas the source code was AGPL.
However, things looked very different back then. This was before the new blender integration, before scripting via MHAPI, before MHX was broken out from the main code and before the asset repositories. The only way to get a result from MakeHuman back then was by going to the file menu and do an export.
Because of the development during the last few years, the license setup no longer makes any sense. In many situations it is simply incomprehensible and impossible to apply. Thus the need for a change.
There are some limits on what we can do though. The hard boundaries are these:
We cannot change the source code license to anything more permissive than GPL, and probably not from AGPL in the first place. There are two reasons for this:
- There have been a vast number of contributors over the last fifteen or so years. They have contributed their code under either GPL or AGPL. Copyright was not explicitly transfered when they sent in their contribution, so they still own their piece of code. We have no way of contacting all these contributors, nor any way of removing their contributions from the code (short of rewriting much of it from scratch).
- We have a hard dependency on PyQT, which is GPL. The combined product is therefore by necessity at least GPL. This is the functional difference between LGPL (which would have allowed linking to PyQT as a library without changing the license) and GPL (which does not allow linking as a library without changing the license).
What we can do is reformulate how graphical assets are treated, and what constitutes a graphical asset. The goal with all this would be to remove any lingering doubt concerning whether a used asset under some circumstances might have been covered by AGPL.
There have been a lot fewer contributors involved in assets, and we feel confident that we (in a worst case scenario) could remove any asset which was not possible to change. Also, according to the current license, all we need to do in order to get an asset licensed CC0 is to export it from MakeHuman.
Further down is a proposed new license setup. The functional before/after changes are these:
BEFORE: Bundled assets are a part of the application
AFTER: Bundled assets are something the application uses, but which are otherwise considered standalone entities
BEFORE: Assets are per default covered by AGPL
AFTER: Assets are per default released as CC0
BEFORE: Exports become covered by CC0 upon export via the GUI
AFTER: Exports only consist of things which were CC0 to start with
BEFORE: Targets, proxies and the base mesh are considered source code, covered by AGPL (unless exported via the GUI)
AFTER: Targets, proxies and the base mesh are considered graphical assets, covered by CC0
BEFORE: Trying to "reverse engineer" or recreate the targets is prohibited
AFTER: Targets are CC0 no matter how you got hold of them
Now, none of us in the dev team is a lawyer. And we cannot afford to hire a lawyer to help us with all this. We can only act in good faith and hope that the community helps us point out flaws and weaknesses in the proposed license setup.
However, no matter what we'll do, there will always be fringe cases that you could construct if you think hard enough and insist on playing the devil's advocate. There's no way around this short of formulating an Apple kind of you-may-not-use-your-iphone-as-a-nuclear-warhead kind of 64-page EULA. Which would be the opposite of formulating a simple and easily understandable license text.
The following is a draft of a new license text. The text does not in itself constitute a license change as of yet. So far it is only a discussion.
Please suggest ways of improving it, even if it's only adjusting a spelling mistake or some bad grammar.
- Code: Select all
LICENSING
=========
Table of contents
-----------------
A. The overall license setup for MakeHuman
B. The license for the source code as such
C. The license for the bundled assets
D. Concerning the output from MakeHuman
A. The overall license setup for MakeHuman
------------------------------------------
The MakeHuman application consists of two separate parts:
* Source code: the program logic that powers the application.
* Assets: The graphical data that the application operates on
B. The license for the source code as such
------------------------------------------
The MakeHuman source code is defined as files that contain program logic.
This includes python files, bat scripts, shell scripts and glsl shaders.
Image files required for the user interface as such are also covered. This
includes images for buttons, icons, and slider images.
The MakeHuman source (as defined per the above) is released under AGPL.
Copyright (C) 2001-2020 MakeHuman Team (www.makehumancommunity.org)
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 <http://www.gnu.org/licenses/>.
For the full text of the source code license, see
[LICENSE.CODE.md](LICENSE.CODE.MD)
C. The license for the bundled assets
-------------------------------------
The assets are defined as any data contributing to the graphical output of
MakeHuman. This includes:
* The base mesh and proxies
* Targets and modifiers
* Textures
* Clothes (any MHCLO-based asset)
* Poses and expressions
These assets have been released under CC0 1.0 Universal. In summary this means
that to the fullest extent possible, it is the intention of the MakeHuman
project that anyone can do whatever they want with it.
For the full text of the legal statement regarding the assets, see
[LICENSE.ASSETS.md](LICENSE.ASSETS.md)
D. Concerning the output from MakeHuman
---------------------------------------
It is the opinion of the MakeHuman project that no output from MakeHuman
contains any trace of program logic. That is, irregardless of whether you use
the UI as such or if you call functions of MakeHuman via a script (such as
via the blender importer), what you get is a combination of assets and your
own creative input. As the assets have been released under CC0, there is no
limitation on what you can do with this combined output.
To make it clear, the MakeHuman project makes no claim whatsoever over output
such as:
* Exports to files (FBX, OBJ, DAE, MHX2...)
* Exports via direct integration (import via MPFB)
* Graphical data generated via scripting or plugins
* Renderings
* Screenshots
* Saved model files
We regard these things as your data, which is yours to handle as you see
fit.
Note that what is discussed here are only assets bundled in the MakeHuman
distribution. If you use a third part asset, such as one downloaded from the
asset repositories, it is your own responsibility to make sure you abide by
its specific license. That license might be different from the one covering
the assets bundled by MakeHuman.