-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Comments
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. |
# 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)
# 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)
@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.
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: 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): 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.
@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. |
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… |
# 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)
Since #271, the bevy repo contains
Monkey.glb
, nowMonkey.gltf
, which is GPL3.0 licensed.Monkey.gltf
is the Blender Suzanne, always has been licensed under the GPL3.0The wikimedia page for Suzanne says this:
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
The text was updated successfully, but these errors were encountered: