sahlberg / libsmb2

SMB2/3 userspace client
Other
320 stars 132 forks source link

LGPL 2.1 license stuff #262

Open ramapcsx2 opened 1 year ago

ramapcsx2 commented 1 year ago

Hey ho, this issue is to try and clarify what is and what's not allowed with the LGPL2 part of the software :)

I'm trying to google for the finer interpretation of the usual wall of text that is a license, and this topic here makes me think it wouldn't be compatible with our project: https://opensource.stackexchange.com/questions/7387/what-is-the-difference-between-lgplv2-1-and-lgplv3

Specifically the last post, it really sounds like the license didn't have closed source hardware projects in mind (later addressed with the v3 of the license), so it is kind of open (to me) what it really means.

sahlberg commented 1 year ago

I will look for more authorative sources for this but I think that link describes the differences between LGPLv2.1 and v3 quite well.

The text says that LGPLv3 requires that the end user can update/modify the resulting binaries, as does GPLv3. LGPLv2.1 and GPLv2 did not require that and it allowed companies, such as TIVO, to ship firmware that could not be modified by the end-user. FSF wanted to prevent that and thus they FSF created LGPLv3 and GPLv3.

The primary reason I picked LGPLv2.1 and NOT LGPLv3 is exactly because LGPLv2.1 does allow you to ship firmware, or an app in the appstore, that the end user for whatever reasons can not modify.

sahlberg commented 1 year ago

So, IANAL but the whole issue around TIVO was that the LGPLv2.1 (and GPLv2) did allow them to ship closed source and locked down firmware that the end user could not modify. Which is exactly what you want to do. And the whole reason LGPLv3 exist is that FSF wanted a license that would not allow that type of firmware.

I explicitly picked LGPLv2.1 because it allows what TIVO did and what you want to do. And I want you to be able to use the library.

sahlberg commented 1 year ago

Or, please email me at ronniesahlberg@gmail.com I have an alternative solution for you that should remove all your concerns. Maybe that is the easiest way to make you feel confident with this.

ramapcsx2 commented 1 year ago

May I ask whether you had concerns about the Apache or MIT license?

About the inclusion of this project in the mStation project, I'm really not sure. That project is about an entirely different topic, and we've spent a few years on researching all that. A feature addition should not be able to make that work liable for any kind of GPL violation litigation, even if the author didn't mean to. (You never know what the next random user might do. GPL has a long history of that.)

ramapcsx2 commented 1 year ago

Also, I realize people don't like picking licenses. It's entirely possible that you hadn't considered MIT or Apache. In that case, those would be great! (In fact, I don't know whether MIT or Apache is better of the two myself xD)

sahlberg commented 1 year ago

On Wed, 24 May 2023 at 22:46, Robert Neumann @.***> wrote:

Also, I realize people don't like picking licenses. It's entirely possible that you hadn't considered MIT or Apache. In that case, those would be great! (In fact, I don't know whether MIT or Apache is better of the two myself xD)

I like the LGPL since it encourages people to contribute improvements back. That is really the main reason.

sahlberg commented 5 months ago

My intention with picking LGPLv2.1 was to make it compatible with GPLv2-ONLY projects which LGPLv3 is not. My intention with LGPL was "you can use it with proprietary software without libsmb2 infecting your code, but IF you make improvements to libsmb2, please feel encouraged to contribute the libsmb2 improvements back.

My intention was never to prevent anyone from using the library, the opposite is true, and includes also use in proprietary or closed source applications. Which I am 100% fine with if you use libsmb2 that way.