Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bevy is in breach of the monkey.gltf license #9967

Closed
nicopap opened this issue Sep 29, 2023 · 3 comments · Fixed by #9974
Closed

Bevy is in breach of the monkey.gltf license #9967

nicopap opened this issue Sep 29, 2023 · 3 comments · Fixed by #9974
Labels
A-Meta About the project itself D-Trivial Nice and easy! A great choice to get started with Bevy P-High This is particularly urgent, and deserves immediate attention

Comments

@nicopap
Copy link
Contributor

nicopap commented Sep 29, 2023

Since #271, the bevy repo contains Monkey.glb, now Monkey.gltf, which is GPL3.0 licensed.

Monkey.gltf is the Blender Suzanne, always has been licensed under the GPL3.0

The wikimedia page for Suzanne says this:

Since this model is shipped as part of Blender, by extracting it we created very small subset of Blender (so to say a changed version of Blender) which we are free to distribute according to their own license statements

Of course, the author of that page is probably not a lawyer, but neither am I.

GPL3.0 requires crediting & sharing alike, or at least noticing users of their rights, none of which we've been doing since #271, three years ago.

Solution

  • Remove Monkey.gltf from the repository.
  • Be very sorry.
@nicopap nicopap added A-Meta About the project itself P-Critical This must be fixed immediately or contributors or users will be severely impacted labels Sep 29, 2023
@alice-i-cecile alice-i-cecile added the D-Trivial Nice and easy! A great choice to get started with Bevy label Sep 29, 2023
@nicopap nicopap added P-High This is particularly urgent, and deserves immediate attention and removed P-Critical This must be fixed immediately or contributors or users will be severely impacted labels Sep 29, 2023
@james7132
Copy link
Member

Not a lawyer here, but I'm not sure if we should retroactively remove the file from the repo, as we're still technically distributing the file in the repo's history.

github-merge-queue bot pushed a commit that referenced this issue Sep 30, 2023
# Objective

- Fixes #9967

## Solution

- Remove `monkey.gltf`
- Added `torus.gltf`, which is two torus meshes joined together, to
replace `monkey.gltf` in the examples

## Examples

I made `torus.gltf` mainly so that the multiple_windows example clearly
shows the different camera angles

### asset_loading

![image](https://github.com/bevyengine/bevy/assets/425184/0ee51013-973d-4b23-9aa6-d254fecde7f1)

### hot_asset_reloading

![image](https://github.com/bevyengine/bevy/assets/425184/b2a2b1d8-167e-478b-b954-756ca0bbe469)

### multiple_windows:

![image](https://github.com/bevyengine/bevy/assets/425184/cb23de2c-9ff8-4843-a5c0-981e4d29ae49)

![image](https://github.com/bevyengine/bevy/assets/425184/b00bc2c7-66e8-4881-8fab-08269e223961)
regnarock pushed a commit to regnarock/bevy that referenced this issue Oct 13, 2023
# Objective

- Fixes bevyengine#9967

## Solution

- Remove `monkey.gltf`
- Added `torus.gltf`, which is two torus meshes joined together, to
replace `monkey.gltf` in the examples

## Examples

I made `torus.gltf` mainly so that the multiple_windows example clearly
shows the different camera angles

### asset_loading

![image](https://github.com/bevyengine/bevy/assets/425184/0ee51013-973d-4b23-9aa6-d254fecde7f1)

### hot_asset_reloading

![image](https://github.com/bevyengine/bevy/assets/425184/b2a2b1d8-167e-478b-b954-756ca0bbe469)

### multiple_windows:

![image](https://github.com/bevyengine/bevy/assets/425184/cb23de2c-9ff8-4843-a5c0-981e4d29ae49)

![image](https://github.com/bevyengine/bevy/assets/425184/b00bc2c7-66e8-4881-8fab-08269e223961)
@rlidwka
Copy link
Contributor

rlidwka commented Nov 24, 2023

@nicopap, I am amazed at how modern copyright system made people scared this much...

... so that people remove stuff from popular opensource project based solely on a wikipedia article.

Blender has not "always been licensed under the GPL3.0". Blender source code has always been licensed under GPLv2-or-later (with irrelevant to this discussion parts under Apache), and each individual Blender binary release is distributed under GPLv3.

Monkey.gltf is the Blender Suzanne, always has been licensed under the GPL3.0

This statement is fundamentally wrong. License is not an inherent property of some file. To determine a license, you need to trace distribution chain from this repository to IP owner.

Blender foundation does not distribute "Monkey.gltf" at all. There is no such file anywhere in blender installation files or git repository. Yes, I've checked.

So, the license depends on how you create that file. Or, to be precise, on how it was created by the person who submitted original PR, what work he did, and what exact versions of software he used to do so.

Bevy contributor did not copy/paste Monkey.gltf from Blender installation to Bevy repo.

I'm going to assume that he copy-pasted built-in mesh and saved it from Blender as gltf. In general, there are 3 possibilities here:
it can be considered to be Bevy contributor's original work
it can be considered a derivative work
or it can be too small to be copyrightable

If you create a cube, that cube is not licensed under GPL. Just saying.

If you create a procedurally generated mesh with 3rd party program (doesn't matter how complex the mesh is), that's also yours. Program developer has copyrights on the algorithm, but not on the program output.

Many people on the internet treat Suzanne as an output of a program (blender), thus being not copyrightable. I wouldn't trust anyone, so I had to dig up Blender source code to see how it is generated.

This is it, probably (I'm just linking to the latest commit, assuming nothing changes over there):
https://github.com/blender/blender/blob/01a2bd03695f217616acc2581fe8746f5cd226d7/source/blender/editors/gpencil_legacy/gpencil_add_monkey.cc#L829

I see hardcoded lists of coordinates, which find their way into gltf eventually.

Is this copyrightable? Would "monkey.gltf" be a derivative work? Technically, nobody knows this until it is determined by a court ruling, but I'm curious to know precedents. Note that GNU folks did consider a case of a program reproducing parts of it source code seriously enough to create the Bison Exception.

This should've been backed up by better research. I don't care about monkeys, I care about the precedent that this removal just set.

but I'm not sure if we should retroactively remove the file from the repo, as we're still technically distributing the file in the repo's history

@james7132, I am amazed at how modern copyright system made people scared this much...

... so people are pondering the possibility of screwing up github history of an opensource project with almost three thousand public forks at this point.

"We" are not distributing this file. This repository is distributed by GitHub. If a copyright troll somehow acquires IP rights and finds this repository in violation, they would send DMCA request to GitHub, after which you can feel free to purge the repository if GitHub lawyers say you should. Given sheer absurdity of the situation, I find it very unlikely to happen, and folks on reddit are gonna have a field day if it does.

If you feel terrified to be sued, you can look into bevy website and old examples. Those are actually distributed by Bevy, although you can probably claim fair use there.

@nicopap
Copy link
Contributor Author

nicopap commented Nov 24, 2023

There was a fairly deep discussion in the bevy discord about this. I don't think it was necessary to remove this file. But I know a lot of people in the community are very scared around copyleft licenses. Every time I mention even the word "Blender" invariably someone reacts with a balance emoji, as if just thinking of Blender as a bevy contributor would infect the bevy codebase with the GPL.

In any case, removing Monkey.gltf cost us nothing, we found a better replacement quickly. If that's all we need to do to make some people more comfortable, I'm happy to do it.

Edit: also note that if the only way to find the answer is a court ruling, I certainly wouldn't want bevy to be the one paying the lawyers of the defense…

rdrpenguin04 pushed a commit to rdrpenguin04/bevy that referenced this issue Jan 9, 2024
# Objective

- Fixes bevyengine#9967

## Solution

- Remove `monkey.gltf`
- Added `torus.gltf`, which is two torus meshes joined together, to
replace `monkey.gltf` in the examples

## Examples

I made `torus.gltf` mainly so that the multiple_windows example clearly
shows the different camera angles

### asset_loading

![image](https://github.com/bevyengine/bevy/assets/425184/0ee51013-973d-4b23-9aa6-d254fecde7f1)

### hot_asset_reloading

![image](https://github.com/bevyengine/bevy/assets/425184/b2a2b1d8-167e-478b-b954-756ca0bbe469)

### multiple_windows:

![image](https://github.com/bevyengine/bevy/assets/425184/cb23de2c-9ff8-4843-a5c0-981e4d29ae49)

![image](https://github.com/bevyengine/bevy/assets/425184/b00bc2c7-66e8-4881-8fab-08269e223961)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Meta About the project itself D-Trivial Nice and easy! A great choice to get started with Bevy P-High This is particularly urgent, and deserves immediate attention
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants