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

Add missing license and copyright #21

Merged
merged 1 commit into from
Jan 5, 2023
Merged

Add missing license and copyright #21

merged 1 commit into from
Jan 5, 2023

Conversation

linkmauve
Copy link
Contributor

Some of the files in this project have been straight up copy/pasted from my own project, inochi2d-rs, without attribution or even mentioning their license.

In the future, it would be simpler for you to cherry-pick the commits from upstream, this both carries the author and description of the commit, and avoids claiming ownership of code you didn’t write.

Some of the files in this project have been straight up copy/pasted from
my own project, [inochi2d-rs](https://linkmauve.fr/dev/inochi2d/),
without attribution or even mentioning their license.

In the future, it would be simpler for you to cherry-pick the commits
from upstream, this both carries the author and description of the
commit, and avoids claiming ownership of code you didn’t write.
@LunaTheFoxgirl
Copy link
Member

LunaTheFoxgirl commented Jan 5, 2023

cc @Speykious at some point I'd like to rewrite some of these files as they are only partially implementing what we need for full compatibility with Inochi2D.

Until then, I'll be merging this.

In fact, we should rewrite all of these files ASAP as the MPL is counter to the requirements needed for Inox2D to be properly useful in a game development setting.

@LunaTheFoxgirl LunaTheFoxgirl merged commit 6b7bdb0 into Inochi2D:main Jan 5, 2023
Copy link
Member

@Speykious Speykious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should really not have been merged before I had my say into it. Some of these modifications are wrong.

Comment on lines +1 to +6
// Copyright (c) 2022 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code of this entire file has already been rewritten and is completely different from your implementation.
Your Vbo struct, which is what was used before, is an enum that becomes Uploaded once it is done, while GlBuffer is just a helper implemented with a builder pattern to construct a NativeBuffer from glow. It is not a rename of any of your code by any means.

As such, it is not subject to this license.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, you can change things around any way you want, your code is still a derivative of the one I wrote, so not really no.

Copy link
Member

@Speykious Speykious Jan 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not a modification of your code but a complete rewrite, so it's not a derivative.
It achieves the same result for the same goal, but it is not the same source code nor a modification originating from it.
Checkout #22, I properly read the license and everything else falls under that term, but not this.

Speykious added a commit that referenced this pull request Jan 5, 2023
Speykious added a commit that referenced this pull request Jan 5, 2023
- Related to #21.

I have no problem putting the additional license where it is needed. But
where it is not, it should not be there.
Additionally, the Mozilla license is fundamentally incompatible
with Inochi2D, so we'd like to avoid as much of it as possible.
Parts that are currently still licensed under the Mozilla license will eventually be rewritten.
@linkmauve
Copy link
Contributor Author

In fact, we should rewrite all of these files ASAP as the MPL is counter to the requirements needed for Inox2D to be properly useful in a game development setting.

Uh? What is the issue with using MPL-2.0 code in games? I will most likely use inochi2d-rs for this purpose once it starts being useful, and I see no issue with that.

@LunaTheFoxgirl
Copy link
Member

In fact, we should rewrite all of these files ASAP as the MPL is counter to the requirements needed for Inox2D to be properly useful in a game development setting.

Uh? What is the issue with using MPL-2.0 code in games? I will most likely use inochi2d-rs for this purpose once it starts being useful, and I see no issue with that.

Inochi2D and Inox2D is BSD 2-clause to create as little friction for commercial, proprietary game development as possible; which is one of the areas I target.

MPL is a copyleft license which makes inclusion in a proprietary game problematic. On top of the large stack of legalese which makes it less appealing for game developers and studios to include.

A copyleft license is not practical for these use cases, especially when modifications rely on code which is under an NDA.

@LunaTheFoxgirl
Copy link
Member

I'd like to apologize for this mess, you clearly have a different goal for inochi2d-rs which is incompatible with ours and I did not spend enough time vetting the code that was going in here before merging it in to being under the main project umbrella. We'll be removing the offending code soon and I'll contribute to rewriting it from scratch.

Speykious added a commit that referenced this pull request Jan 5, 2023
This PR removes any code that still remains as a copy or derivative of
Link Mauve's inochi2d implementation.
Unfortunately, that code is licensed under the Mozilla 2.0 license,
which is incompatible with the Inochi2D project.
- See #21 (comment)
for explanations on why copyleft licenses are incompatible with the
project.
@linkmauve
Copy link
Contributor Author

I'd like to apologize for this mess, you clearly have a different goal for inochi2d-rs which is incompatible with ours and I did not spend enough time vetting the code that was going in here before merging it in to being under the main project umbrella. We'll be removing the offending code soon and I'll contribute to rewriting it from scratch.

You all say I have “different goals” but you never explained which, besides “You use enum and I use enum with one more Custom value”, which I interpret more as an excuse not to contribute to my project than anything else. I’m not dead set on the license, that’s why I asked you to explain why it was an issue for games, and frankly removing the entire code just for that sounds very weird to me.

@Speykious
Copy link
Member

Speykious commented Jan 5, 2023

Your implementation is a reverse-engineered one rather than something that aims to be inline with the current spec.

I already explained everything that could be the reason for why we're not contributing to your project in your XMPP channel.

  • This licensing issue alone.
  • You do not want a WGPU renderer, since you can target the web fine with your OpenGL ES 2.0 renderer.
  • You do not want an MVP.
  • You don't use any proprietary platforms, which is respectable, but also makes it harder for a lot of people, especially since it's not on GitHub. And you refuse to have a Discord account to talk in the official Inochi2D Discord server - which is, again, also respectable, but just as well a barrier of communication.
  • We haven't implemented anything that you would want yourself yet. We haven't implemented physics, nor have we implemented deforms or animation. That was the next step until the licensing issue came around.
  • Me using an enum "with one more custom value" is not the only thing that describes the extensibility of my system, that by the way you have explicitly dismissed as premature abstractivism.

Overall I'm really surprised that you do not see how our goals don't align after all our interactions so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants