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 License to the Code #182

Closed
cole-rogers opened this issue Mar 5, 2018 · 12 comments
Closed

Add License to the Code #182

cole-rogers opened this issue Mar 5, 2018 · 12 comments
Assignees
Labels

Comments

@cole-rogers
Copy link

If there is no license, people can not use the code legally, and if people are not meant to be able to do that, please tell them so they do not accidentally steal your code. Is this project meant to be Open Source in the sense that it is modifiable or can people just see the code?

@Ironbell Ironbell self-assigned this Mar 5, 2018
@Ironbell
Copy link
Collaborator

Ironbell commented Mar 5, 2018

You can legally modify and use the code, that's why it's open source. Please don't use the soundtracks and other assets without permission though, as they are licensed (CC by SA for example).

What (open-source) license for code would you recommend for that purpose?

@silverhook
Copy link

silverhook commented Mar 5, 2018

The fact of the matter is that copyright is automatic, so unless there is a specific license attached, the default is literally “all rights reserved”. That being said, very happy to help you chose an appropriate license.

What is the best FOSS license for your project mostly depends on what your plans and concerns are.

Some good questions as a start are:

  • would you rather that a) everyone can make use of your code and even put it into non-FOSS products, or b) would you rather that your code is used only in FOSS projects
    • if you want your code to only continue as FOSS do you want a) only your own code to stay FOSS and don’t care about any other code that is in that project/product, or would you rather b) that the whole project using your code has to be FOSS
  • do you worry about your code being ran as SaaS
  • do you worry about patents

After a quick glance at your code base it seems that all code that you use is under a permissive license, so your license options for Cendric2 are pretty wide.

@Ironbell
Copy link
Collaborator

Ironbell commented Mar 5, 2018

Thanks for yur suggestions. I'll see what fits best for us and will update it accordingly ;)

@MichaelJBrune
Copy link

I thought I would help a bit on this. As we know, copyright is automatically all rights reserved.

So to help the "which license?"

If you REALLY don't care what people do with this code whatsoever. I recommend WTFPL or CC0. Basically says public domain, don't even need to attribute you. the copyright can be changed.

If you want to be at least attributed you might then pick BSDL or MIT license which requires attribution but doesn't require anything else while allowing everyone to use the code.

Lastly if you want to force people to give you their changes, additions or force people to open source their code if they use yours at all then you use GPL. Which will require people to push their code as GPL even if they only use say 1 function or the entire thing. A lot of people encouraging open source like the GPL because it enforces open source like a legal virus, spreading and spreading keeping code bases open source. This can be useful if you are looking to leverage the changes and updates in a way such as creating an engine but personally would recommend against the GPL.

So I would recommend MIT License. CC0 if you really don't care.

@eXpl0it3r
Copy link
Contributor

I personally would recommend to have two different licenses for code and assets. That way you could go with something like CC BY-NC-ND that way the creators are protected and people aren't allowed to use it commercially or in an derivative work without permission.

As for code, while I do like CC0, I wouldn't recommend it for a project like this, because you're not only allowing anyone to do with your code whatever they want, but you're actively giving up your copyright, which you don't really want for a project of that size. MIT (and zlib) are very permissive licenses that would fit well and if you want to have a little more control, you could also go with something like Apache 2.0.

In the end, I feel it's not that important because even if someone would violate your copyright or your license, chances are you don't want to invest the amount of money to legally pursue someone, especially if they don't even live in your country.

@silverhook
Copy link

Since other than having a soft spot for FOSS games, I don’t have any stakes in this project, I’m happy to take the back seat in this discussion. Happy to voice my opinion or help, if you want some friendly (and personal opinion) feedback from a professional FOSS license compliance lawyer.

The only thing I hope this discussion steers into is, that before specific licenses get discussed, the important question of what you and your community want to achieve with it gets answered. There are over 300 widely known FOSS licenses, of which dozens are very popular. Only after you know what you want or what you are concerned with, we can identify a selection of licenses that match your requirements.

And yes, separate license for assets and code is totally feasible.


P.S. If this comment came across a bit rude, it wasn’t intended that way at all. I’m in a bit of a hurry typing this (hence terse language) and I just want this discussion to be as productive and positive as possible. Love you guys 🐈

Ironbell added a commit that referenced this issue Mar 6, 2018
Ironbell added a commit that referenced this issue Mar 6, 2018
@Ironbell
Copy link
Collaborator

Ironbell commented Mar 6, 2018

I updated both LICENSE.md and Readme.md to include the changes.

The code is now licensed under a MIT license (that does make it open-source, yes?)
The assets are licensed under a CC by SA NC (Creative Commons Attribution-NonCommercial-ShareAlike) license.

I hope that works for you all.
The reason behind this choice is now that the game itself cannot be copied and sold as-is, but the code can be used freely, even for commercial projects. You can mod the game with your own assets and release it, I don't care. You can also use parts of the code in an own project.

Can anyone who is more experienced in this domain, give me a short confirmation, that this works how it should?

@MichaelJBrune
Copy link

That should do it. Some people add a comment header of the license to each code file just to ensure it stays with the code but I don't think that is strictly required.

@silverhook
Copy link

silverhook commented Mar 7, 2018

Basic requirements (almost) met 👍

Apart from a small change, it looks good.

Other than the copyright notice you should not change the text of the MIT license (or any/most other licenses for that matter). Once you put a canonical version of the MIT license into your repository, also GitHub will automatically detect it and tag your repo appropriately.

What you should do instead is clarify in the README (as you do now) or some other file which parts fall under which license.

What I’d (more or less) do is:

  1. download the MIT.txt from the SPDX¹ license-list-data git and store it as LICENSE
  2. change the Copyright (c) <year> <copyright holders> line to reflect your copyright
  3. explain the licensing situation in the README (you do that already)

Best practices

Headers

The copyright and license notice in the source code file headers are not required, but it’s a really good idea. The thing is that if someone copies just some files from your code elsewhere, how can someone else know who is the copyright holder and the license of those files?

Here’s a really good, short and simple tutorial on best practices – it even includes² scripts and tests to help you out: https://reuse.software/

In short, regarding the headers in your case, you’d add at the beginning of each file the following comment:

 /*
  * Copyright (c) 2018 Isa Roesch & Tizian Zeltner
  * 
  * SPDX-License-Identifier: MIT
  */

Of course, feel free to also include some short info about where that file came from and what it does (e.g. link to your projects’ website or repo).

Add other licenses in a consistent manner

While you’re at it, you might want to store the plaintext version of the CC-BY-NC-SA-.4.0 license text into your

What I’d actually do is

  1. create a LICENSES/ directory in the root of the repo
  2. download the MIT.txt from the SPDX license-list-data git and store it as LICENSES/MIT.txt (and not have a single LICENSE file)
  3. change the Copyright (c) <year> <copyright holders> line to reflect your copyright
  4. download the CC-BY-NC-SA-4.0.txt from the SPDX license-list-data git and store it as LICENSES/CC-BY-NC-SA-4.0.txt
  5. explain the licensing situation in the README (you do that already)

Comment on MIT

Yup, the way you understand MIT and CC-BY-NC-SA-4.0 seems correct :)


1 Software Package Data Exchange is the standard for license and copyright annotation.
2 REUSE.software also explains very well how to best tag also non-source-code files (e.g. binaries, images, music) so the copyright and license info is both human and machine readable. It’s just 2-3 pages long, I warmly recommend reading it.

@Ironbell
Copy link
Collaborator

Ironbell commented Mar 7, 2018

Wow thank you so much @silverhook for this extensive explanation. I followed your suggestion and added both licenses to the LICENSE folder. That should do it ;)

@silverhook
Copy link

Brilliant 😄

Now, I know it’s a small nit-pick, but according to REUSE.software, the folder should be named LICENSES. Sorry to bother you about it again.

Ironbell added a commit that referenced this issue Mar 8, 2018
@Ironbell
Copy link
Collaborator

Ironbell commented Mar 8, 2018

No problem, I just overlooked that. It should be fine now and thank you for your help. :)

@Ironbell Ironbell closed this as completed Mar 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants