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

Changing Licensing (GPL?) #136

Open
jeremysalwen opened this issue Jul 30, 2024 · 36 comments
Open

Changing Licensing (GPL?) #136

jeremysalwen opened this issue Jul 30, 2024 · 36 comments

Comments

@jeremysalwen
Copy link
Contributor

Hi @ClemensElflein,

I know that there was a thread on the OpenMower repository where people were rather aggressively angry that OpenMower uses a CC non-commerical license. I understand that due to all the work you have put into OpenMower, you want to protect your ability to sell hardware.

However, I am looking at adding visual SLAM to OpenMower, and I am finding that the state of the art libraries are all GPLv3 licensed (meaning I cannot combine them with the OpenMower software). I think licensing the software as GPL, while still licensing the hardware as CC/NC would be compatible with your goals. Would that be something you would consider? Others would be able to use the software in their commercial projects, but they would have to share any improvements or changes they made with the community.

The main issue I foresee is that all contributors would need to agree to licensing under the GPL, but I could help with tracking everyone down. I think the benefits in compatibility with the larger open source software community would be great.

@ClemensElflein
Copy link
Owner

Hi! Thank you for the message. I was also thinking about a license change, since CC is a weird license for software anyways. I chose that because back then I never thought that there will be much interest in the project at all - especially in someone just taking it and selling a commercial version of it. Since then I put even more effort into it and am not sure how / if it makes sense to do a commercial version of it. Therefore I'd still like to avoid seeing a commercial OpenMower based robot where I'm not a part of. I realize that with the current CC license I also can't just take the code without the contributor's consent, but for me that was a topic for another day.

RE GPL'd code cannot be used here: Can you explain to me why that is, AFAIU the license terms I feel that it would work (which is also the reason why you can use it in closed-source commercial applications). You would link the GPL'd library as usual and if you change any code of that GPL'd library you need to open source those changes as GPL'd code as well (which would mean do a fork of the lib, include your changes, link to that changed lib). Or am I missing something here?

Any other licenses you think would work for you? I haven't given that much thought yet.

@jeremysalwen
Copy link
Contributor Author

jeremysalwen commented Jul 31, 2024

Hi Clemens,

It didn't even occur to me that you yourself could have problems with the licensing due to other people's contributions. FWIW I think the typical way to address this would be to have a Contributor License Agreement, that every contributor must sign before contributing, giving you the right to use the code under additional licenses as you please. The might be pretty heavyweight for OpenMower though.

Re: GPL code, I think what you are describing is the license terms of the LGPL, which allows you to link your code to the LGPL library without releasing your code, as long as you release the modifications to the original LGPL library. The GPL is more strict, which is why it is often called "viral". If you link any code to GPL code, you must release that code under the terms of the GPL as well. In this case this would be a problem, since the CC/NC license does not allow commercial usage, so you are forbidden from sharing the code under the GPL, which does allow commercial usage. So effectively you are forbidden from linking the code together at all. (I think technically you might be okay if don't share the code with anyone).

There is a sort of loophole in that if the code segregated into two separate binaries which are communicating over sockets, it may not be considered a combined work. But it's not always clear. From gnu.org:

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

For the case of SLAM libraries, this might be feasible since they could be put in their own ROS node, but I think it's preferable to avoid the ambiguity. Additionally this sort of segregation might not be possible for other GPL libraries that would benefit OpenMower.

Re: other licenses, I think for a copyleft license, GPLv3 is the obvious choice. If you wanted to be more strict (i.e. prevent someone from running "OpenMower as a service" 😆) , you could use the AGPLv3. If you don't want copyleft restrictions, then I would recommend Apache 2.0, since it provides protection against patent trickery. There are also even simpler licenses like the MIT, 2 clause BSD, or Unlicense, which don't provide patent protection.

You could also use the LGPL if you want an intermediate amount of copyleft, but that would be kind of odd, since OpenMower is not a library.

@ClemensElflein
Copy link
Owner

Thank you for your detailed reply. I have given it some thought and I think GPL is indeed pretty fitting here. If I were to use the code in a commercialized version of the mower, I'd like to disclose the sources anyways (and currently that wouldn't even be possible). In addition it would allow you to use SLAM libraries and integrating SLAM is something I also want to do.

If you can track down the contributors and get them to allow the license change, I'll do it.

@jeremysalwen
Copy link
Contributor Author

jeremysalwen commented Aug 3, 2024

Ok, thanks Clemens! Here's the list of people I will contact, pulled from github. Just want to check there isn't anyone else who contributed outside of github (like a patch you committed for them?)

I will just edit this comment to cross them off the list as I get permission.

  1. olliewalsh
  2. cloudn1ne
  3. docgalaxyblock
  4. jkaflik
  5. midevil
  6. NDaub
  7. mnh-jansson
  8. tommarek
  9. Apehaenger
  10. rovo89
  11. cedbossneo
  12. bodop
  13. vermut
  14. DarthBubi
  15. Erfre
  16. 11phc
  17. EtheriVR
  18. gytisgreitai
  19. Kekzy (Alias for NDaub)
  20. 2m
  21. lucasw

@jeremysalwen
Copy link
Contributor Author

If you are tagged by this comment please reply whether you approve of GPLv3 licensing for OpenMower

Please leave a comment instead of emoji reacting, so we will have a clear record. You can just copy and paste "I agree to release all of my contributions to OpenMower under the GPLv3 license". If you aren't sure and have any questions about what it means, feel free to ask.

  1. @olliewalsh
  2. @cloudn1ne
  3. @docgalaxyblock
  4. @jkaflik
  5. @midevil
  6. @NDaub
  7. @mnh-jansson
  8. @tommarek
  9. @Apehaenger
  10. @rovo89
  11. @cedbossneo
  12. @bodop
  13. @vermut
  14. @DarthBubi
  15. @Erfre
  16. @11phc
  17. @EtheriVR
  18. @gytisgreitai
  19. @Kekzy
  20. @2m
  21. @lucasw

@jkaflik
Copy link
Contributor

jkaflik commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

1 similar comment
@mnh-jansson
Copy link
Contributor

I agree to release all of my contributions to OpenMower under the GPLv3 license

@2m
Copy link
Contributor

2m commented Aug 14, 2024 via email

@EtheriVR
Copy link
Contributor

I agree to release all of my contributions to OpenMower under the GPLv3 license

@bodop
Copy link
Contributor

bodop commented Aug 14, 2024 via email

@vermut
Copy link
Contributor

vermut commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

@vermut
Copy link
Contributor

vermut commented Aug 14, 2024

But I additionally should mention that CLAs that I signed for others projects were more formal. It included real name and I think even the signature. It was handled by a bot, so maybe this bot is for rent.

@midevil
Copy link
Contributor

midevil commented Aug 14, 2024 via email

@11phc
Copy link
Contributor

11phc commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

2 similar comments
@Apehaenger
Copy link
Collaborator

I agree to release all of my contributions to OpenMower under the GPLv3 license

@docgalaxyblock
Copy link
Collaborator

I agree to release all of my contributions to OpenMower under the GPLv3 license

@docgalaxyblock
Copy link
Collaborator

But I guess it is difficult to get back in contact with @cloudn1ne
I tried to contact him back in '23 by discord and two emails but sadly no response.

@cloudn1ne
Copy link
Contributor

I agree to release all of my contributions to OpenMower under the GPLv3 license - For those that tried to reach me sorry, but reality caught me.

@jeremysalwen
Copy link
Contributor Author

But I additionally should mention that CLAs that I signed for others projects were more formal. It included real name and I think even the signature. It was handled by a bot, so maybe this bot is for rent.

I think a CLA is more for the case where we would want to assign copyright to Clemens so he could re-license as he wishes in the future. The other Cover-Your-Ass benefits of a CLA I don't think are so important for a small project like this. https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/

But I guess it is difficult to get back in contact with @cloudn1ne I tried to contact him back in '23 by discord and two emails but sadly no response.

That is concerning, since cloudn1ne is not just a minor contributor. :/

@jeremysalwen
Copy link
Contributor Author

🎉 🎉 🎉 You're alive!! 🥳 🥳 🥳 Thank you @cloudn1ne much appreciate your work on Mowgli!

@olliewalsh
Copy link
Collaborator

I agree to release all of my contributions to OpenMower under the GPLv3 license

3 similar comments
@NDaub
Copy link
Contributor

NDaub commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

@rovo89
Copy link
Contributor

rovo89 commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

@lucasw
Copy link
Contributor

lucasw commented Aug 14, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

@docgalaxyblock
Copy link
Collaborator

For those that tried to reach me sorry, but reality caught me.
@cloudn1ne Good to hear something from you.
How are the chances being active on the project and/or discord again?

@gytisgreitai
Copy link
Contributor

Lol, I don't care :)

@fallingcats
Copy link

fallingcats commented Aug 16, 2024

Lol, I don't care :)

If you aren't opposed, it would probably be a good idea to add that sentence I agree to release all of my contributions to OpenMower under the GPLv3 license as a formality @gytisgreitai . Thank you.

@DarthBubi
Copy link
Contributor

I agree to release all of my contributions to OpenMower under the GPLv3 license.

1 similar comment
@cedbossneo
Copy link
Contributor

I agree to release all of my contributions to OpenMower under the GPLv3 license.

@jeremysalwen
Copy link
Contributor Author

@gytisgreitai I'm sorry to bug you but I am not sure whether your response is a "Yes" or a "No". I know you only contributed a single commit, but if you could just clarify if you are giving permission that would be very helpful, since we want to respect the copyright of everyone's contributions, no matter how small.

@Erfre and @tommarek You are the last two contributors we haven't heard back from!

@tommarek
Copy link
Contributor

tommarek commented Sep 21, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license

Sorry guys, I didn't notice this. :)

@ClemensElflein
Copy link
Owner

ClemensElflein commented Nov 28, 2024

First of all, thank you all for organizing this and for agreeing to move to a new license!

To not lose this out of focus (and since more contributions are coming in which I think also need to agree?), we should decide on what we do with people who don't accept - as far as I understand small code changes are usually also excluded from a CLA.
E.g. the example CLA contains this in the very end:

Small Code Exception

Generally, if your contribution constitutes as a small code contribution, you do not need a CLA. <COMPANY_NAME> defines a small code contribution as a bug fix, or trivial patch.

Question is, if this also applies here. @gytisgreitai's commit we can see here: dc750cf

Also we are missing consent for @Erfre, commit can be seen here: 2f3867e

We already got one contribution from @AndreKR in the meantime, could you please also consider agreeing to the discussion above?

@AndreKR
Copy link
Contributor

AndreKR commented Nov 28, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license.

@11phc
Copy link
Contributor

11phc commented Nov 28, 2024

I agree to release all of my contributions to OpenMower under the GPLv3 license.

Thanks all

@Apehaenger
Copy link
Collaborator

Small Code Exception

Generally, if your contribution constitutes as a small code contribution, you do not need a CLA. <COMPANY_NAME> defines a small code contribution as a bug fix, or trivial patch.

Question is, if this also applies here. @gytisgreitai's commit we can see here: dc750cf

Also we are missing consent for @Erfre, commit can be seen here: 2f3867e

In my point of view, both changes fall clearly into the "Small Code Exception" section!

@jeremysalwen
Copy link
Contributor Author

I agree these changes are minimal, especially @Erfre's patch. I tried contacting both of them through email, but got no response FYI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests