CapsCollective / raylib-cpp-starter

A portable, automated template for raylib projects with C++ bindings
Other
68 stars 17 forks source link

Licence issues #15

Closed pyrareae closed 2 years ago

pyrareae commented 2 years ago

I'm concerned about using this template for a project because there is already a license applied to it, which means that any project using this makefile & scaffold is technically derrived from this project even though it's just a scaffold. This is different from a library that's brought in because often times libraries have completely different licences than the main application. This could cause legal troubles for someone who starts off a game with this and tries to keep their copyright reserved.

It would be good to release this as public domain (cc0, the unlicence, wtfpl, etc...).

jonjondev commented 2 years ago

Interesting issue you bring up @lunarfyre7. Considering that Zlib is as permissive as it realistically gets and also matches raylib below it. The license permits commercial usage and just asks politely (but not in any binding way) for acknowledgment so I can't imagine this would preclude "rights reserved" usage as long as they do not masquerade as the original author.

Let us know what kind of usage you feel would be impacted for you and we can go from there.

pyrareae commented 2 years ago

My concern is that isn't any project using this template bound to be licensed under zlib, and only zlib? It's definitely a very unobtrusive nice license, but still it does become the license of whatever game you make with this scaffold. Though it doesn't state that you have to share the source code with would be the strongest turn off to someone developing a closed source game. Really for me the biggest problem would just be having the choice already made rather than the license itself.

For example if I released the source for a game I developed seriously, I would probably actually choose a more restrictive license like ccnc. possibly also with a contributor agreement and a second commercial license used for my own distribution if I were even more serious.

Raelr commented 2 years ago

Hey Pyrareae, thanks for bringing this up!

I just want to clarify that I understand your issue before delving further into this.

You want to create a project from this template, however you want to potentially (maybe now, maybe in the future), create something more private with it. The third restriction of Zlib states:

This notice may not be removed or altered from any source distribution.

If this project were a library, the Zlib project would make sense, however since this is a template you aren't legally permitted to remove the Zlib licensing (as stated by the clause above). As such, since the licensing is at the top level, you're stuck using Zlib since you can't alter or remove it at all.

Does that sound like a correct summary of your question?

Raelr commented 2 years ago

@J-Mo63 - I think @pyrareae is right here. There doesn't appear to be a way to add a license that won't inevitably end up with some restriction toward adjusting it. Even if we remove clause 3, it'll just mean that users can override our license and remove the need for acknowledgement. I suggest we change this to The Unlicense and then put a small section in the README to ask for acknowledgement.

What are your thoughts on this?

jonjondev commented 2 years ago

Ok, so I did a bit of digging and it seems that clause three has been misunderstood in a literal way, as it states "this notice". In reality (not where us devs live), that refers to the lines of text, not the actual file - there's no such concept. While this does mean you may not remove the file, there's nothing forbidding the addition of content for the inclusion of further licenses that effectively relicence the project.

How does this work? First, you would label the initial licence as "licence (a)" or something to that effect, and then you add the new licence above as "licence (b)". Usually open source code will include a licence header at the top of source files in order to establish which licence it falls under, in which case the licence file can state something along the lines of "all files fall under the protection of licence (b) unless otherwise noted in the source header".

Funny enough, this question has been asked before specifically for zlib! In order to aide in this scenario for @pyrareae, we should add a notice to the top of the Makefile pointing specifically to the zlib licence in the licence file. Something like so would do:

# Copyright (c) 2020 Jonathan Moallem (@J-Mo63) & Aryeh Zinn (@Raelr)
#
# This code is released under an unmodified zlib license.
# For conditions of distribution and use, please see:
#     https://opensource.org/licenses/Zlib

# Define custom functions
rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
platformpth = $(subst /,$(PATHSEP),$1)
...
jonjondev commented 2 years ago

Hi @pyrareae, just checking in to see if this resolves your issue? If so, we can go ahead and make the change.

pyrareae commented 2 years ago

@J-Mo63 Okay so basically you are legally allowed to delineate which parts of the code are the original zlib and which parts are under whatever other license? So in this case you could just put a zlib license header on the makefile and you're set it sounds like?

jonjondev commented 2 years ago

@J-Mo63 Okay so basically you are legally allowed to delineate which parts of the code are the original zlib and which parts are under whatever other license? So in this case you could just put a zlib license header on the makefile and you're set it sounds like?

100% @Raelr looks like we can move forward with updating the repo accordingly. If you go ahead and update PR https://github.com/CapsCollective/raylib-cpp-starter/pull/16 to instead add this notice to the top of the Makefile I'll go ahead and approve.

# Copyright (c) 2020 Jonathan Moallem (@J-Mo63) & Aryeh Zinn (@Raelr)
#
# This code is released under an unmodified zlib license.
# For conditions of distribution and use, please see:
#     https://opensource.org/licenses/Zlib
Raelr commented 2 years ago

Done. I've just updated the PR @J-Mo63