tonihele / OpenKeeper

Dungeon Keeper II remake
GNU General Public License v3.0
442 stars 43 forks source link

Remove license information from the source code #312

Closed Albeoris closed 6 years ago

Albeoris commented 6 years ago

Great spirits, why do not you just put one license file? Why are you wasting your time and other people's time creating useless headlines? What benefit do you hope to receive? Years differ, the texts of licenses are not relevant. Please remove this garbage from the source code files!

tonihele commented 6 years ago

I'm not sure what you mean by wasting time? IDEs do this thing automatically and trained eyes skip the texts :)

As far as I know, they don't hold the same relevance as they used to back in the days. The license is valid with or without them nowadays. So it is just a matter of preference now. We chose to do this and we will continue to do so. Maybe in a next project then we take this into reconsideration. Thanks.

RobertZenz commented 6 years ago

Years differ, the texts of licenses are not relevant.

What? How did you come to that conclusion?

Also you can start with this discussion and this one. In short, the safest way to make sure that the source code is correctly licensed is to include a license header in each file. In this case, even when a single file is copied, or linked against, it is easily visible and without question under which license the source code is available. It also makes it clear when a single file is licensed under a different license (yes, there are projects with mixed licenses). If the source code is not licensed (or appears not to be licensed) than you have to assume that it is "All Rights Reserved", which pretty much means "No share, no touch" and in some countries even "No look". Ideally, we'd now talk to a lawyer to clear this up, but even then the opinions will most likely differ.

Why are you wasting your time and other people's time creating useless headlines?

If you're wasting time on the headers, you're doing something very wrong.

Albeoris commented 6 years ago

Thank you for your answers. I see, it's a requirment from the GNU official guide. But I don't understand how you have copyrights and copyleft license at the same time. :)

But let's see. Take random file from this repostiory: https://github.com/tonihele/OpenKeeper/blob/master/src/toniarts/openkeeper/utils/UTF8Control.java

Let's find this code via google: https://gist.githubusercontent.com/ussy/531362/raw/a417933ede1c45cea263b33f4934bbe1bab03ca7/PropertyResourceBundleControl

These documents coincide by 80%.

I'm sure we can find places where it's used under MPL or CDDL. That is, you take a piece of code, hang on it your copyrights and the license with which it may even be incompatible. I think this can be a source of big problems.

Legal disputes over the ownership of code is a very complex process with unpredictable results. GPL is a very ambiguous license. IMHO, the easiest way to avoid the associated problems is to show as little as possible the text of the license and copyright, if your company does not engage in licensed trolling.

P.S. I would like to take this opportunity to thank you for the great job! :)

tonihele commented 6 years ago

Licenses are a bit tricky always. And if the need arises to copy code, it is super convenient if the source also has the headers in place. That way the licence compatibility can be easily checked and the original headers can be included also in the file (usually a requirement of the source license too). Like we have done with i.e. our network code. We do always mark the source of the code, like in the random example you provided, so it can be traced and the credits go to the original author. The file you were referring is one we can get rid of soon fortunately. When we switch to Java 11. On a side note that is.

RobertZenz commented 6 years ago

But I don't understand how you have copyrights and copyleft license at the same time. :)

Simple: Copyright is copyright, copyleft is a license. In most countries of the world you cannot get rid of copyright that you own, you simply cannot make it go away (until it becomes invalid, for example you are dead and 70 years have passed). Copyright means that you can say what happens with that something, again in all countries of the world that means "All Rights Reserved", or in layman's terms "no touchy". So the only way to give others the possibility to use that source code is to license it to them.

These documents coincide by 80%.

That's a completely different problem. There are only two important questions here now:

  1. Where is the origin of that code (is it really the Gist)?
  2. Under what license was it?

Now that you raised it, you've actually questioned whether OpenKeeper can use that source code or not. Using this source in OpenKeeper might actually be a copyright violation and the source (of the code) being referenced to as the Gist is actually what I'm talking about. The source does not have any license information attached, there for it is "All Rights Reserved", and technically OpenKeeper is wrong to relicense it under GPL.

Legal disputes over the ownership of code is a very complex process with unpredictable results.

Actually, it is not. Not if you know where it came from and what (or who) the source is. If in doubt, it is always "All Rights Reserved" and you cannot use it.

IMHO, the easiest way to avoid the associated problems is to show as little as possible the text of the license and copyright, if your company does not engage in licensed trolling.

WHAT THE FUCK?! I'd like you to take a step back, go to Wikipedia and read articles about copyright and licenses, and then you go to Youtube and listen to multiple talks about copyright and licenses, right now. I mean, we are all not lawyers here, but that idea is so...so...sorry, stupid, I don't even know where to start.

Copyright and licenses are legal matters. There is no "I can wiggle my way out of it because I'm smart or because it was all a misunderstanding", I mean, there is, but it costs five grands upwards (in Euro/Dollar). Or if you're extremely unlucky it will consume everything you own and ten years of your life. Most of the internet is treating copyright extremely lightly. You remember that image you found through an image search and re-uploaded it to an image hosting provider? Most likely a copyright violation. You remember that Meme you took from Reddit, added your own text re-uploaded it? Most likely a copyright violation. You remember copying that code from Stack Overflow? Most likely a license violation. Ever read through leaked source code (for example the Samsung drivers that were leaked a few years ago)? Oh boy...guess what, you are now liable. What, you saved it on your harddisk too? My dear you're in for a wild ride. Your avatar? Was it drawn by you or do you have explicit permission to use it? Though, you could claim "Fair use" on that one if it is from something like a comic book or TV show.

Copyright and licenses are neither easy nor fun, they are required and not getting them right means you have a problem...and not the internet kind of problem that you can ignore and they go away. On a good day you get a "cease and desist" letter from someone, in extreme cases it means that the police will come to your home and confiscate any computer you have.

Albeoris commented 6 years ago

Simple: Copyright is copyright, copyleft is a license.

Yes, you are right. My bad.

I mean, we are all not lawyers here, but that idea is so...so...sorry, stupid, I don't even know where to start.

I'm not suggesting that you get rid of the license. О.о

I'm talking about this situation:

and technically OpenKeeper is wrong to relicense it under GPL.

I'm sure, at 99% you will never get a complaint about using this code. But after hanging on him your rights and the text of the license, you violated (or not) someone's copyrights. If it is a question of a court, the accidental violation of someone's rights because of careless copying and deliberate appropriation of someone's creativity are two big differences.

I'm talking about the fact that if I need to take a snippet of your code, I'll go to the repository and see what license you are distributing it.

The license in each file only raises unnecessary questions (such as this one) and can lead to a complaint for copyright infringement in cases where the absence of this thing would not lead to problems.

I repeat that I am not calling to violate copyrights, I do not blame you for violating them, and I do not call for refusing to license intellectual property. It would be terribly wrong. :)

And we have already found out that adding a license to each file is a recommendation of the license. I have no more questions about this. :)

RobertZenz commented 6 years ago

The license in each file only raises unnecessary questions (such as this one) and can lead to a complaint for copyright infringement in cases where the absence of this thing would not lead to problems.

That is what I'm talking about, this idea. The idea that the absence of a license or copyright information makes it anymore "okayish" or acceptable is completely absurd. It might obscure it, but that's about it, and that is a completely bad idea. And neither do you gain deniability, because as project maintainer which has introduced the code into the codebase you were completely aware of its copyright status.

OpenKeeper is licensed under the GPL, so no matter what is in the source tree is also licensed under GPL. Fullstop. It doesn't matter whether you attach a header to it or not, it is that way.

Of course we could now look at an MIT licensed project and assume that it contains a source file without any copyright information, or all of them for that matter. So somebody using the project has to assume that everything in the project is licensed under MIT. So if the project now included a source file which is actually licensed under GPL, do you know what happens? All previous releases which are including this source file have to be relicensed under GPL. And now comes the kicker, every project depending on this now GPL licensed project are also to be relicensed. That's the worst case scenario that can happen to you in a corporate environment and there will be heads rolling around the floor. And that is actually the good scenario, because if that file turned out to be "All Rights Reserved" your company gets liable for damages. Depending on the project and the company, that could mean closing the doors.

The absence of a license must be assumed that it means the project license applies. That is just worse than having the license header there in the first place, because with the license header, you as downstream have at least some sort of plausible deniability. Assuming that not having a license header "raises less questions about the origin of the code" is just obscuring a problem which can bite you in the ass in the long run, and everyone using your project.

Albeoris commented 6 years ago

Good point. Your arguments are convincing enough, and have the right to life.