-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Header with GNU/GPL license text #70
Comments
I would recommend we hold off on this. We have a license in the top-level README at the bottom of the file. |
If we do decide to do this, there are many tools to easily add the preamble. |
It makes the most sense that we will be sticking to the go-ethereum license for our sharding implementation. Closing this issue unless anyone has important concerns at the moment. |
That isn't the question. The question is: do we need to add the license preamble to our new files? |
Raul will confirm with go-ethereum team |
Confirmed by Peter from the geth team. We will use LGPL for lib code and GPL for binaries. Closing. |
We shouldn't close this until it is resolved. |
We will no longer be a fork of geth. Closing. |
This isn't a geth dependency but a licensing question. If we are going to use GNU/GPL then we may need this preamble |
I think that we'll choose a more permissive license and the preamble may not be necessary. Not sure how to reach a definitive answer though. |
Can anyone provide clarity about why the project didn't adopt a more permissive license? Seems to be the right thing to do, especially in the spirit of the philosophy of subtraction. |
@shazow Sure, happy to explain. We want to ensure this software remains open and free to use. Take the linux kernel as an example. Imagine if they didn't choose GPL and some company decided to make and withhold improvements to the open source software. This hypothetical company may try to profit from this in some way, perhaps by selling closed source software based on the Linux kernel that everyone should benefit from for free. I'm glad you linked to the Ethereum foundation as the go-ethereum project was an inspiration for choosing the license we did. I would argue that this license is better for the community. If you want to fork this project, modify it, and use the modified code privately then you may do so with the permissions granted with GPLv3. However, you may not distributed modified closed source software with this license. If there is a compelling reason that someone wishes to distribute copies of this software (for free or for charge) without ensuring the same open source freedoms to their recipients then we can revisit this or consider explicit permission for said entity. |
Thanks for the quick followup! Some context: I've been maintaining popular open source projects since 2008, with over 60M downloads/mo. I'm very familiar with the mechanics of GPL and the effects it has on open source efforts, but my experience does not match this. Are you open to being convinced otherwise? Would it be better to take this conversation to another medium? Quick summary:
I don't feel that the argument that Ethereum is successful because some of the implementations are GPL is compelling, given that Ethereum largely exists because of Bitcoin which is MIT. My more immediate concern: I'm working with Infura and we've built a lot of private infrastructure that is statically linked in Go. Part of my role is open sourcing pieces of this, but right now it's a big monolith with many thousands of engineering hours behind it and converting the entire thing to GPL is not an option while the option to redistribute is important. Managing micro-dependencies as dynamically linked libraries is also more inconvenience than it's worth. In effect, we're duplicating effort of doing clean-room rewrites of bits and pieces of go-ethereum just to avoid touching GPL. This is an unfortunate circumstance, and I'm hoping we can avoid this with future projects like prysm. Worth noting that I've been personally involved in several "duplication of effort" rewrites just to avoid touching GPL in my career. A lot of the rewrites end up being released as MIT anyway, for others to avoid duplicating the duplication, but I wish we didn't have to do this in the first place. Finally, regarding the subtraction principle, the premise of being protective from others trying to profit from our work reads very strongly as "Unhappy when others create value" and against "Matter less." It reads as an attempt to recapture opportunities into the origin codebase, to pull changes back in-house. Clearly this is a subjective sub-topic that we're only starting to explore. |
THanks for the feedback @shazow. I won't argue with you that MIT and other more permissive license allow more freedoms with regards to distributing closed source projects when using projects with modification.
I can appreciate your perspective about this. To be clear, our intention is not to prevent anyone from using the project for profit. The GPL license allows anyone to freely use the project as they see fit without publishing the modified closed source code as long as they aren't redistributing the software. This satisfies the majority of use cases that I can imagine. The iOS use case is an interesting exception. We are not lawyers and licensing reaches outside of our knowledge domain. I won't say we can't be convinced that GPL is harmful for Prysm, Ethereum, and the community. For this reason, we have a CLA in place, since the beginning, which should allow us to change license at a later date (I'm not a lawyer so this might not be correct). |
Opening this issue to discuss the necessity of putting a license notice in our header. The license notice makes the header of the file cluttered, and we should have a sweeping license in the root of the project. Let's evaluate our options to avoid possible legal complications for the future
The text was updated successfully, but these errors were encountered: