skeeto / emacs-web-server

Extensible Emacs HTTP 1.1 server
The Unlicense
240 stars 31 forks source link

Incompatible license #14

Closed notetiene closed 7 years ago

notetiene commented 7 years ago

While the license for this package seems to be more permissive than the original, it is incompatible with the original one. Therefore, you cannot put this software as Unlicensed or even Public Domain.

Furthermore, since this software uses parts of GNU Emacs, it automatically falls under the GPL license. Of course, it would be illegal to do otherwise, but a big problem would be with someone taking this work, distributing it byte-compiled and refusing to give sources to the one that received the byte-compiled file. I know this is silly since the GNU Emacs license itself would prevent that legally.

Please update your license to clear any confusion that could arise.

skeeto commented 7 years ago

I wasn't the first person to upload this package to GitHub — it was originally hosted on my own gitweb server — but, as "git log" shows, I did write the original GPL-licensed code. So I'm free to change the license however I like. For 6 or 7 years now I've prefered to put everything I write in the public domain, and I've since removed the GPL from my sources where possible.

Also, I disagree that the GPL automatically applies to all Emacs packages. I haven't incorporated any part of Emacs into the source, so it's not a derivative work. There is a potentially valid argument about the byte-compiled form being subject to the GPL due to the way macros are expanded (e.g. defstruct), possibly incorporating a legally significant amount of Emacs' code. The GPL's linking rules don't apply since Emacs Lisp isn't linked (well, except perhaps for code loaded for the "unexec" memory dump). The FSF may disagree with me about linking, but nobody really knows. This particular situation has never been tested in court.

Regardless, Emacs itself has included public domain Emacs Lisp sources for at least 25 years (examples: hanoi.el, emerge.el, vi.el), during which GNU has also been distributing these files in byte-compiled form, and this hasn't been considered a problem. Further, because the VM byte-codes and Emacs' built-in macros change a little bit between releases, it's not really practical to distribute byte-compiled files without the Emacs that byte-compiled it anyway.

This all highlights why I prefer to simply put everything in the public domain: Dealing with software licensing is a huge waste of time and money. The GPL has had some valuable victories, but I don't think it's been worth the burden.

notetiene commented 7 years ago

Thanks for clarification. Since I'm not a lawyer and I'm not versed much into Copyright Law, I will assume you are right.

My question also had to do with contributions. Will my contributions be released as Unlicensed?

skeeto commented 7 years ago

Unless you make an explicit exception, it's implied that if you contribute changes, it's licensed the same as the whole. The way I view this in the context of Git and GitHub: To make a PR you have to fork the repository, make your changes, then push the changes to your fork, which still bears the license of the original project. That's unambiguously publishing your changes under that license.

Suppose you change the licence to something compatible, then commit your changes on top. This would put your changes under a different license. However, due to the way Git works, that PR must include the license change, making it obvious. I would not accept that PR.

notetiene commented 7 years ago

Would you be okay to have a dual license? Having it Unlicense and GPL at the same time? Of course, people contributing would agree for both license.

skeeto commented 7 years ago

Sorry, I'd much prefer to keep this software in the public domain. The GPL has absolutely no benefit here. It only makes it more difficult for other people to use this code.

notetiene commented 7 years ago

Actually, it's much more complicated to deal with this work as Public Domain than it would have been with GPL. I'm not going to argue for the benefit of GPL over Public Domain. I understand it could be an ideology issue and I respect your opinion.

My problem has more to do with the legality of such a claim (that this work is public domain). By using several require you effectively use GNU Emacs as a library and are therefore in the obligation of distributing a derivative work as GPL if you distribute it. The GPL even apply when you don't share your work and kept it private, you're just in no obligation of providing sources for anyone asking for it.

Also, the fact that Emacs included Public Domain means that it was written before using GPLed code. Since it's also illegal to make a claim for a public domain work, it simply cannot go into the GPL.

To be consistent with the GPL even your init files are covered by the GPL. You don't have to provide the sources for anyone asking unless you distribute it (you could even charge for that).

Note that even WordPress themes are automatically GPLed. Images, styles and javascript do not need to be. That's also why several plug-ins makers are using servers to add functionality that don't fall in the GPL (and they have the right to).

I could probably go even as far as saying that any Emacs Lisp programs must be in the GPL. Unless you only use C primitives, it would be GPL because you use code from Emacs.

You may say whatever you want about it being in the public domain, but you're legally bound to the GPL and therefore have no right to claim your work as Public Domain. Please read the GPL or use only C primitives and Common Lisp code.

skeeto commented 7 years ago

I simply think you're wrong about the GPL, and there is no possible argument that could change my mind on this matter. The required information doesn't exist yet. I will only be convinced when this particular situation is tested in court, where it's up to the whims of some judge that barely understands computers. Arguing about it is like arguing about the outcome up a future coin toss. It's highly unlikely that coin toss will happen in my lifetime, so I don't think we'll ever have a solid answer one way or another.

Given the coin toss nature of these technical court decisions, I honestly think the FSF and friends is (and should be) afraid to have the more ambiguous parts of the GPL tested in court: a little bit of bad luck could destroy most of the GPL's current strengths. So far they've only pursued the cut-and-dry stuff that they can easily settle. That's what keeps the ambiguous parts ambiguous.

Like virtually everything related to software licensing, I don't see any productive outcome to this discussion, so I'm going to close this issue. The whole reason I dedicate all of my open source software to the public domain is to avoid the legal bullshit, both for me and anyone using it.

notetiene commented 7 years ago

I was also going to close the issue, but I forgot to do so.

By contributing to this software, my conscience wouldn't be clean and I put a high value on someone's conscience. Therefore I'm considering making a new server from scratch to avoid any conflict that could arise. I'm taking that as yet an other challenge and not an obligation. So in a sense, this discussion was fruitful :grinning:

I want to be clear that I wasn't trying to steal your work and put it as GPL. I seriously wouldn't mind about someone publishing a work into the Public Domain. It might even be the best choice in many situations. I really appreciate the work you did and still continue to do.

Thanks for your great work and I hope my disagreement on what has been said doesn't hinder any work you're doing or any relations you may have with FOSS people.

Best regards,