sa-mp-fixes icon indicating copy to clipboard operation
sa-mp-fixes copied to clipboard

License

Open Y-Less opened this issue 7 years ago • 32 comments

This seems to be by far the most active of the forks, so I'm going to assume it is now the official one. This issue is entirely my fault, as I didn't set it up initially, and it is hard to solve after-the-fact, but it should be done.

The library needs a license - preferably something non-viral and permissive like MPL 2 or BSD (not GPL). Because it doesn't currently have one, all the code by various people has explicit permission to be used in this library (or at least I always got permission, but my Russian isn't yet good enough to read all the newer posts (я изучаю) so I'll assume that's still the case); but the use of all that code outside of this library is not allowed, and even the use of this whole library at all is questionable, though permission is implied by the wording of the readme/topic (permission is being given, just not in a legally rigourous manner).

A license would make it explicit how people can use the code: BSD is basically "you can do almost anything with this code, just don't blame us". MPL 1.1 is basically "you can use this whole file as long as your code is NOT GPL and you share modifications to the file, just don't blame us". MPL 2.0 is basically "you can use this whole file as long as you share modifications to the file, just don't blame us". GPL is basically "you can use this code as long as all your other code we didn't write is also GPL, just don't blame us" (hence why it is viral, and I can tell you now I wouldn't give permission for my parts to be included in GPL code). YSI is still MPL 1.1 because it is explicitly NOT GPL compatible, though MPL 2.0 is probably prefereable here as it gives the widest compatability for use with both GPL and non-GPL code, while still requiring that people who modify fixes.inc itself have to share their modifications.

Now the hard part: getting permission. Because there is currently no license, all the code in this file is ad-hoc shared by the authors, but they still own copyrights on their parts (which is why this project is illegal: http://forum.sa-mp.com/showthread.php?t=591458 - it just took other people's code without permission). A license would transfer copyright to the project instead of the person, and actually allow for forks; however, since something like MPL applies to the entire file, just taking small snippets out would still (rightly) not be allowed (there is a mechanism for only including individual fixes, so there's no need to take out code anyway).

Unfortunately, because all the different bits of code are owned by many different people, no one person has the authority to change how that code is licensed - EVERYONE needs to agree (OpenSSL recently tried to change their license while stating that anyone who didn't reply would be assumed to have agreed, with massive backlash against this incorrect view). Anyone who doesn't agree or who can't be contacted would need to have their code removed from the relicensed version, and that code would have to be rewritten by someone who had never seen the original to avoid claims of plagarism (it could probably be cleaned up by an expert though afterwards for efficiency and cleanliness).

So the three tasks are:

  • [x] Choose a license - I strongly recommend MPL.
  • [ ] Get permission from all contributors to license their code under this new license (the reason I support MPL - it satisfies GPL fans by being compatible and GPL haters (like myself) who object to fully viral licenses in their own code).
  • [ ] Rewrite the parts of anyone who objects or can't be contacted.

This is all my fault, so I'm willing to do the legwork in contacting people, though I seriously tarnished my reputation so wouldn't be surprised if that was deemed not the best approach. Fortunately, I think that people who wrote the larger fixes or a lot of fixes are still fairly active, so should be contactable.

Y-Less avatar Mar 27 '17 08:03 Y-Less

I'm completely agree with you. But I have no enthusiasm for getting permissions from all contributors. I can add MPL license to the file, but does this have sense whithout any permissions?

ziggi avatar Mar 28 '17 19:03 ziggi

@ziggi I could send an email to all contributors to try to get their permissions.

SysadminJeroen avatar Mar 28 '17 20:03 SysadminJeroen

It would be very useful.

On Mar 28, 2017 23:32, "Jeroen" [email protected] wrote:

@ziggi https://github.com/ziggi I could send an email to all contributors to try to get their permissions.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Open-GTO/sa-mp-fixes/issues/17#issuecomment-289895450, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-Qw6O8DsdgWplHEgu8ffIyH6acmjxHks5rqW5zgaJpZM4Mp90- .

ziggi avatar Mar 28 '17 20:03 ziggi

I have checked out the latest version of the repository and got a list of all contributors. Busy formatting an email, all contributors will receive an email soon.

SysadminJeroen avatar Mar 28 '17 20:03 SysadminJeroen

Here is a draft.

You have contributed to the sa-mp-fixes https://github.com/Open-GTO/sa-mp-fixes project. As of right now the project doesn't have any license. Y-Less has proposed the MPL license for the project in issue #17 https://github.com/Open-GTO/sa-mp-fixes/issues/17#issue-217177039 If you are the author of the code, do you give permission to the owner of the project [email protected] to license the code that you have contributed under the MPL license?

SysadminJeroen avatar Mar 28 '17 20:03 SysadminJeroen

I did say I was willing to do the legwork, by which I meant attempt to track down and contact the authors. But if someone else wants to, no problem. I'd suggest using any contact fields they may listed on the forums, and post a topic in General or Scripting Discussion requesting anyone else who has contact with the people you can't find.

You can't add the MPL header to the file before that has been done sadly.

As for the message, I'd probably put a bit more information in, such as why this change. Also point out that this is the same project as "fixes.inc" from the forum, as they may not realise the connection just from that link.

Y-Less avatar Mar 28 '17 23:03 Y-Less

Dear <whoever>,

We are contacting you as you have contributed to the sa-mp-fixes project, previously fixes.inc on the SA-MP forum (https://github.com/Open-GTO/sa-mp-fixes). As of right now the project doesn't have any license, which is actually a problem for clarifying how it can be used despite its apparent open-source status. Y-Less has proposed the MPL 2.0 license for the project in issue #17 (https://github.com/Open-GTO/sa-mp-fixes/issues/17) as it is a middleground that is both GPL compatible but not viral (https://en.wikipedia.org/wiki/Mozilla_Public_License). Unfortunately to do this, we require explicit permission from all authors to relicense their individual code parts. If you are an author of some code, do you give permission to the owner of the project ([email protected]) to license the code that you have contributed under the MPL license?

Because we cannot continue until all contributors have replied (without removing their code), we would appreciate a prompt response.

Thank you in advance,

ziggi and the wider SA-MP community

I don't know if that is too formal and verbose. Also, that issue link took some fiddling to get displaying in that quote instead of being shortened automatically, so be careful if you copy the whole text.

Y-Less avatar Mar 28 '17 23:03 Y-Less

@Y-Less GitHub Markdown does indeed change how the message is shown.

This is the true draft.

You have contributed to the sa-mp-fixes <https://github.com/Open-GTO/sa-mp-fixes> project.

As of right now the project doesn't have any license.

Y-Less has proposed the MPL license for the project in issue #17 <https://github.com/Open-GTO/sa-mp-fixes/issues/17#issue-217177039>

If you are the author of the code, do you give permission to the owner of the project <[email protected]> to license the code that you have contributed under the MPL license?

I'd post all email addresses of all contributors here, but not sure if that'd be sensitive information.

To get the contact info from all committers use git shortlog -sne in the repository.

If we send the email to all committers we could possibly write down which part of the code has been approved for MPL and which aren't.

We should make a gist or Google Docs file where we keep track of which code we do or don't have approval of the author to license it as MPL.

Edit: The message being verbose is pretty much required for legal stuff, and to explain it as much as possible.

SysadminJeroen avatar Mar 28 '17 23:03 SysadminJeroen

The list of contributors is in the file - a lot of those were written by various peopple but merged by me, so you will only see my name in the logs.

Y-Less avatar Mar 29 '17 01:03 Y-Less

T-Thanks GitHub, and I have seen the list of contributors. We could make a branch where we check off if the author has given the approval of the MPL license.

SysadminJeroen avatar Mar 29 '17 15:03 SysadminJeroen

That isn't really git/github's fault - they were just snippets of code on the forums that I copied in (with permission of course).

You don't need a branch - issues can have checkboxes now (as in the first post) and clicking them will mark the issue as some percentage complete (so this one is currently 0% - 0/3).

Y-Less avatar Mar 29 '17 15:03 Y-Less

Ah, I thought that you meant that you approved the merge request.

I am aware that issues can have checkboxes, however I think that it'd be prefered to have the author's approval up until right now committed to the repo in a separate folder. And after that, we might want to put pull requests on-hold until we have the following sorted out:

  • CONTRIBUTING but for this repo
  • A copyright/license notice at the top of each relevant file.

SysadminJeroen avatar Mar 29 '17 15:03 SysadminJeroen

Yes, I see what you mean now about the separate branch. I assume us three are on board, and I know @oscar-broman (Slice) is.

Y-Less avatar Mar 29 '17 15:03 Y-Less

Ok, I added MPL 2.0 license header to the file.

List of all contributors (extracted from comments):

  • [ ] Bios-Marcel (@Bios-Marcel)
  • [ ] CyNiC
  • [x] Daniel_Cortez ru (@Daniel-Cortez)
  • [ ] Emmet_ (@emmet-jones)
  • [x] Freaksken (@WoutProvost)
  • [ ] funky1234
  • [ ] h02
  • [ ] im
  • [ ] JernejL (@JernejL)
  • [ ] KoczkaHUN
  • [ ] leong124
  • [ ] Lordzy (@Lordzy)
  • [ ] MP2
  • [x] Mutha_X ru
  • [ ] RyDeR`
  • [x] simonepri (@simonepri)
  • [ ] Slice (@oscar-broman)
  • [ ] Terminator3
  • [ ] TomTrox
  • [ ] Whitetiger (@Whitetigerswt)
  • [ ] wups
  • [x] ronixtey ru (@ronixtey)
  • [x] Y_Less (@Y-Less)
  • [x] ziggi ru (@ziggi)

Add +1 (reacton or comment) if you give permission to license the code that you have contributed under the MPL 2.0 license.

Curl command to getting all reactions for this comment:

curl "https://api.github.com/repos/Open-GTO/sa-mp-fixes/issues/comments/290178549/reactions" -H "Accept: application/vnd.github.squirrel-girl-preview"

ziggi avatar Mar 29 '17 18:03 ziggi

That needs to be on a branch - we can't put the license on master as people usually download from there and it isn't yet legal.

Y-Less avatar Mar 29 '17 18:03 Y-Less

That needs to be on a branch - we can't put the license on master as people usually download from there and it isn't yet legal.

My bad, added license branch.

ziggi avatar Mar 29 '17 18:03 ziggi

  1. Are we agreed on the wording of the message? If so, someone (who) can start sending them out. I modified my version slightly:

Dear <whoever>,

We are contacting you as you have contributed to the sa-mp-fixes project, previously fixes.inc on the SA-MP forum (https://github.com/Open-GTO/sa-mp-fixes). As of right now the project doesn't have any license, which is actually a problem for clarifying how it can be used despite its apparent open-source status. Y-Less has proposed the MPL 2.0 license for the project in issue #17 (https://github.com/Open-GTO/sa-mp-fixes/issues/17) as it is a middleground that is both GPL compatible but not viral (https://en.wikipedia.org/wiki/Mozilla_Public_License). Unfortunately to do this, we require explicit permission from all authors to relicense their individual code parts. If you are an author of some code, do you give permission to the owner of the project ([email protected]) to license the code that you have contributed under the MPL license?

Because we cannot continue until all contributors have replied (without removing their code), we would appreciate a prompt response. If you have any questions please don't hesitate to ask. Also, apologies if you recieved this message multiple times, several older members are hard to contact and so multiple communication methods were used.

Thank you in advance,

ziggi and the wider SA-MP community

Just added the bit about questions and multilpe contacts (e-mail, forum PM, gitter, IRC, anything else you can think of). However, we can't all do this or they will get too many messages.

Y-Less avatar Mar 29 '17 18:03 Y-Less

I agree, I will send something like that to russian contributors on the weekend.

ziggi avatar Mar 29 '17 18:03 ziggi

@Y-Less That message is perfect for English-speaking contributors.

I could localize the message to Dutch, I believe that there is one contributor who speaks Dutch.

Perhaps we should try to mark on the list if the contributors speak Russian, Dutch, or other (English).

While I was away from my computer I thought about something, there is a template you can make for issues on GitHub, perhaps you can make one for pull requests that includes an agreement that the code contributed will be licensed under MPL2.0.

SysadminJeroen avatar Mar 29 '17 19:03 SysadminJeroen

Future additions aren't a problem, because the license will have been established and accepted if you add the CONTRIBUTING as you suggested.

Y-Less avatar Mar 29 '17 20:03 Y-Less

As for localisation, go for it.

Y-Less avatar Mar 29 '17 20:03 Y-Less

@Y-Less The README.md should refer to CONTRIBUTING for info how to contribute. The CONTRIBUTING could contain something like this.

By contributing to this project you agree that any modifications you provide will be licensed under [refer to LICENSE].

SysadminJeroen avatar Mar 29 '17 20:03 SysadminJeroen

Here is the message localized to Dutch.

Geachte <name/nickname>,

We nemen contact met je op omdat jouw code in het sa-mp-fixes project aanwezig is, dit project heette vroeger fixes.inc op de SA-MP forum (https://github.com/Open-GTO/sa-mp-fixes). Het project heeft op dit moment geen licentie, dat is een probleem voor het bewijzen hoe het gebruikt mag worden ook al is de code open-source. Y-Less heeft voorgesteld om het MPL 2.0 licentie te gebruiken voor het project in kwestie #17 (https://github.com/Open-GTO/sa-mp-fixes/issues/17) omdat het een compromis is tussen GPL compatibel maar niet te ingrijpend is op het uiteindelijke product. (https://en.wikipedia.org/wiki/Mozilla_Public_License). Het is jammer dat we dit moeten doen, we hebben expliciete toestemming van alle auteurs nodig om hun losse stukken code uit te brengen onder een andere licentie. Als je een auteur bent van bepaalde losse stukken code in het project, geef je toestemming aan het eigenaar van het project ([email protected]) om het code uit te brengen onder het MPL 2.0 licentie?

We kunnen niet verder gaan tot iedereen die losse stukken code heeft uitgebracht toestemming geeft (zonder hun code weg te halen), we willen heel graag een snelle reactie. Als je een vraag hebt moet je het zeker vragen. Excuses als je dit bericht meerdere keren ontvangen hebt, sommige community leden zijn moeilijk bereikbaar en hebben we hetzelfde bericht via verschillende communicatie methodes verstuurd.

Dank u voor uw aandacht,

ziggi en het grotere SA-MP community

SysadminJeroen avatar Mar 29 '17 23:03 SysadminJeroen

Go ahead with my parts.

WoutProvost avatar Apr 01 '17 21:04 WoutProvost

So who is going to send the messages? As I say, I don't mind doing so, and chasing up, but only if agreed.

Y-Less avatar Apr 05 '17 09:04 Y-Less

Don't want to sound rude, but is it really a good idea to use MPL 2.0 instead of a more simple license like BSD, MIT or zlib? I mean I know MPL requires people to share modifications to the original code, but this requirement only applies to those who redistribute binary versions of the original work or a larger work that uses the MPL-covered code. Also it makes the code holders to only share the source code with recipients of the code in binary form, they don't really have to give the source to anyone else who doesn't have the binaries. E.g. if one user sends a filterscript that uses fixes.inc (modified or not) as an AMX file to another user, they have to send the source code of fixes.inc as well (or at least provide a link for download), but only to that user, not to the whole community since the FS binary wasn't made publicly available. Another example: if a server owner uploads their gamemode AMX that uses any MPL-covered code to a hosting service, they have to provide the MPL-covered source code to the hosting company (upload either the code or a link along with the *.amx file?), unless the user agreement with the company tells otherwise. And, IMHO, this can complicate the use and redistribution of scripts that use fixes.inc since the requirement to share the source code applies not only to the holders of modified code, but to everyone who redistribute binaries derived from MPL-covered code.

And again, I really don't want to sound rude or anything. I know my contribution to fixes.inc isn't very notable: it's just a simple performance optimization for the GetPVarString/GetSVarString fix that can be easily replaced or removed. I just want to make sure the license won't cause any further problems for the users.

Daniel-Cortez avatar Apr 05 '17 11:04 Daniel-Cortez

The source must be "made available", that's not the same thing as "sent". It is available here, so as long as you don't modify anything in this file sending an AMX to another person is fine without any attached sources. The code is here and already made available so you don't need to take any extra steps to ensure that. An end-user of this include only has to do something if they actually modify this file. And it doesn't apply to other code in the same mode, just this one file. So using it along side your own code is fine, that doesn't count as a modification to this file.

Binary forms should mention the license used in documentation, but that is true of BSD and MIT as well (zlib requests it but doesn't require it). I'm open to a simpler license, but I'm not sure your argument applies here. What do other people think? And if not MPL, then which one?

Y-Less avatar Apr 05 '17 12:04 Y-Less

The source must be "made available", that's not the same thing as "sent"

It doesn't only say "made available".

http://directory.fsf.org/wiki/License:MPLv2.0 3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

(a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient;

So what I said (wrote?) above is true. Or did I get something wrong from that text (I really doubt that though)?

Binary forms should mention the license used in documentation, but that is true of BSD and MIT as well (zlib requests it but doesn't require it).

What if a script that uses MPL-covered code is simple enough and doesn't have any documentation? Would it make such use illegal?

Also, the MIT license doesn't require mentioning in the product documentation, if the product doesn't have one. Instead it has the following requirement:

http://directory.fsf.org/wiki/License:Expat The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

And it's not clear if the term all copies or substantial portions includes the code in binary form or not. Some people include the license text into binaries, some don't. For example, LLVM uses the UIUC license (similar to BSD) for most of its projects, but the runtime library components are double-licensed under the MIT license because in their opinion it doesn't require to include the license into the binary code.

http://llvm.org/docs/DeveloperPolicy.html In addition to the UIUC license, the runtime library components of LLVM (compiler_rt, libc++, and libclc) are also licensed under the MIT License, which does not contain the binary redistribution clause.

Daniel-Cortez avatar Apr 05 '17 13:04 Daniel-Cortez

I don't know the answers to those questions - I'm not a lawyer. It still seems to me that not including the license information even in just a small readme is required for MIT, BSD, and MPL despite what LLVM imply because of "all copies", but I don't know. However, I'm personally leaning more towards a simpler license as you suggest, but that still needs buy-in from everyone else.

Y-Less avatar Apr 05 '17 14:04 Y-Less

So who is going to send the messages? As I say, I don't mind doing so, and chasing up, but only if agreed.

I sent messages to Russian guys and I got only two response and only one permission.

...License stuff...

What about Apache License 2.0? Or even The Unlicense?

ziggi avatar Apr 05 '17 17:04 ziggi