ClemensElflein / open_mower_ros

Other
500 stars 124 forks source link

Changing Licensing (GPL?) #136

Open jeremysalwen opened 1 month ago

jeremysalwen commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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
  20. 2m
  21. lucasw
jeremysalwen commented 1 month ago

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 commented 1 month ago

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

mnh-jansson commented 1 month ago

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

2m commented 1 month ago

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

On Wed, Aug 14, 2024, 07:17 Martin Jansson @.***> wrote:

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

— Reply to this email directly, view it on GitHub https://github.com/ClemensElflein/open_mower_ros/issues/136#issuecomment-2287873878, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADHBRX4I2G7NUYT3LT3O43ZRLR5FAVCNFSM6AAAAABLW73XAOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBXHA3TGOBXHA . You are receiving this because you were mentioned.Message ID: @.***>

EtheriVR commented 1 month ago

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

bodop commented 1 month ago

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

Am 14.08.24 um 03:47 schrieb Jeremy Salwen:

  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 https://github.com/olliewalsh
  2. @cloudn1ne https://github.com/cloudn1ne
  3. @docgalaxyblock https://github.com/docgalaxyblock
  4. @jkaflik https://github.com/jkaflik
  5. @midevil https://github.com/midevil
  6. @NDaub https://github.com/NDaub
  7. @mnh-jansson https://github.com/mnh-jansson
  8. @tommarek https://github.com/tommarek
  9. @Apehaenger https://github.com/Apehaenger
    1. @rovo89 https://github.com/rovo89
    2. @cedbossneo https://github.com/cedbossneo
    3. @bodop https://github.com/bodop
    4. @vermut https://github.com/vermut
    5. @DarthBubi https://github.com/DarthBubi
    6. @Erfre https://github.com/Erfre
    7. @11phc https://github.com/11phc
    8. @EtheriVR https://github.com/EtheriVR
    9. @gytisgreitai https://github.com/gytisgreitai
    10. @Kekzy https://github.com/Kekzy
    11. @2m https://github.com/2m
    12. @lucasw https://github.com/lucasw

— Reply to this email directly, view it on GitHub https://github.com/ClemensElflein/open_mower_ros/issues/136#issuecomment-2287675009, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABTEKDUQR2FQLHF3DF4LBNLZRKZLLAVCNFSM6AAAAABLW73XAOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBXGY3TKMBQHE. You are receiving this because you were mentioned.Message ID: @.***>

vermut commented 1 month ago

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

vermut commented 1 month ago

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 commented 1 month ago

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

Van: Jeremy Salwen @.> Datum: woensdag, 14 augustus 2024 om 03:47 Aan: ClemensElflein/open_mower_ros @.> CC: Wim Dieke @.>, Mention @.> Onderwerp: Re: [ClemensElflein/open_mower_ros] Changing Licensing (GPL?) (Issue #136) 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. @olliewalshhttps://github.com/olliewalsh
  2. @cloudn1nehttps://github.com/cloudn1ne
  3. @docgalaxyblockhttps://github.com/docgalaxyblock
  4. @jkaflikhttps://github.com/jkaflik
  5. @midevilhttps://github.com/midevil
  6. @NDaubhttps://github.com/NDaub
  7. @mnh-janssonhttps://github.com/mnh-jansson
  8. @tommarekhttps://github.com/tommarek
  9. @Apehaengerhttps://github.com/Apehaenger
  10. @rovo89https://github.com/rovo89
  11. @cedbossneohttps://github.com/cedbossneo
  12. @bodophttps://github.com/bodop
  13. @vermuthttps://github.com/vermut
  14. @DarthBubihttps://github.com/DarthBubi
  15. @Erfrehttps://github.com/Erfre
  16. @11phchttps://github.com/11phc
  17. @EtheriVRhttps://github.com/EtheriVR
  18. @gytisgreitaihttps://github.com/gytisgreitai
  19. @Kekzyhttps://github.com/Kekzy
  20. @2mhttps://github.com/2m
  21. @lucaswhttps://github.com/lucasw

— Reply to this email directly, view it on GitHubhttps://github.com/ClemensElflein/open_mower_ros/issues/136#issuecomment-2287675009, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABPU5MK3IRTGGALPWE2EAKLZRKZLJAVCNFSM6AAAAABLW73XAOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBXGY3TKMBQHE. You are receiving this because you were mentioned.Message ID: @.***> Let op: Deze e-mail komt van buitenaf en kan dus een phishing mail zijn als de afzender of tekst van ons gezin lijkt te komen

11phc commented 1 month ago

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

Apehaenger commented 1 month ago

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

docgalaxyblock commented 1 month ago

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

docgalaxyblock commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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

olliewalsh commented 1 month ago

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

NDaub commented 4 weeks ago

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

rovo89 commented 4 weeks ago

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

lucasw commented 4 weeks ago

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

docgalaxyblock commented 4 weeks ago

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 commented 4 weeks ago

Lol, I don't care :)

fallingcats commented 4 weeks ago

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 commented 3 weeks ago

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