makehumancommunity / makehuman

This is the main repository for the MakeHuman application as such.
http://www.makehumancommunity.org
Other
1.18k stars 244 forks source link

License Clarification #199

Closed cadop closed 1 week ago

cadop commented 2 years ago

I have read through many of the forum posts regarding the license, but they also seem to be before 2020.

The current license states:

It is the opinion of the MakeHuman project that no output from MakeHuman contains any trace of program logic. 
That is, regardless 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.

On the website, the license explanation seems a bit different (perhaps it is old) http://www.makehumancommunity.org/content/license_explanation.html

Importantly, I am trying to understand what the implication is for modifying makehuman, as from the above link:

If someone takes the source code of MakeHuman and modify it, they have a different product. 
That product is no longer the official MakeHuman, and the CC0 exception does not apply. 
In that case only the AGPL license applies.

On the license.md:

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)
  1. Can makehuman be used in combination with any software that is not AGPL? For example, if one wants to make a plugin for Maya with Makehuman. All the edits and modifications to the makehuman codebase for getting it inside of Maya could be made AGPL, but that developer has no ability to force Autodesk to make their software AGPL. Is this just not allowed at all?

  2. If one does change makehuman, for example by adding a fingernail length feature, is this now considered 'modified', and all of the phrasing around assets and output being CC0 is instead AGPL?

  3. How is MPFB2 GPL and not AGPL? Why would this not fall under the 'modified' category?

joepal1976 commented 2 years ago

Thanks for pointing this out. The license explanation is indeed old information. I have edited the page to make clear that it is not relevant for MakeHuman 1.2.0 and later.

I am no lawyer. The following is my best understanding. If you want to make really sure, you should contact someone who can give you legal advice.

1: This depends on how to make the plugin. If you write a plugin that inherits or reuses makehuman source code structures, then that plugin needs to be licensed AGPL. This in contrast to if you make a plugin which only communicates with makehuman over a network socket (which is how MPFB does it) and which does not reuse any makehuman source code. If you don't use or modify any makehuman code, then the AGPL license does not apply.

You cannot combine restricted/proprietary source code with AGPL code without violating at least one of the licenses. But one thing communicating with another thing does not constitute derivate in the terms of the AGPL license.

2: Finger nail length is not a source code modification. That is the addition of an asset (a target) which makehuman uses. Assets are not covered by AGPL. Further, the phrasing around "modified" is old information which is only relevant for makehuman 1.1.1 and earlier. The license setup does not change if you modify makehuman.

3: MPFB is not derived from the MakeHuman source code. It is a complete rewrite of the logic from scratch. It does reuse assets, but not source code. Assets are covered by CC0, not AGPL. So AGPL does not apply here.

MPFB then communicates with MakeHuman via a network socket. But the closest metaphor here is if you write a web browser that communicates with a web server. The web browser does not need to be AGPL just because the web server is.

Aranuvir commented 1 week ago

Guess we can close.