śr., 12 lut 2020 o 08:48 Helmut Grohne <helmut.grohne@xxxxxxxxxx> napisał(a): > > Hi, > > I've recently encountered libgpiod and found that its API is nice to > work with. Thank you for this piece of software. > > IANAL > > The library is licensed LGPL, which makes it available to non-free uses > in principle. For the C library, I think this is a good license. For the > C++ bindings, LGPL poses a little problem as code can be generated from > the header. For instance, libgpiodcxx is using `ctor() = default;`. > Strict intepretation of the LGPL would mean that a downstream user > should be able to recompile the whole product using libgpiodcxx. > Effectively, libgpiodcxx can be considered GPL (not LGPL) licensed for > practical purposes. You can find more background at: > * https://blogs.msmvps.com/gdicanio/2016/07/11/the-lgpl-and-libraries-exposing-a-c-interface/ > * Eigen was initially LGPL and was converted to MPL2: > https://eigen.tuxfamily.org/index.php?title=News:Relicensing_to_MPL2! > * QT4 has also encountred this: > https://lwn.net/Articles/315251/ > I think that the LGPL when applied to C++ results in an unclear > licensing situation at best and an effective GPL at a strict > interpretation. Varying license interpretation rarely results in > anything good. > > For these reasons, I ask you to consider changing the license for > libgpiodcxx only (and not for libgpiod nor for the Python bindings). I > propose following Eigen and switching to MPL2. If however, the intention > is the strict reading of the non-lesser GPL, consider switching to that > instead. Either change improves the clarity of the licensing and makes > the intention visible. > Hi Helmut, thank you for this e-mail. I admit I'm not very well versed in software licensing. What you're saying makes sense and the links you posted seem to confirm it. I'll still try to get a second opinion on this. Anyway: my intention is to make the library available to non-free projects - including C++ bindings - so MPL2 makes sense. There's only one significant contributor (new features, not bug-fixes) to C++ bindings other than me (Cc'ed Kent Gibson) from whom I'd need an ack on relicensing, so it shouldn't be very difficult to do. While at it: LGPL is the only license used by all libgpiod components. Do you know if it makes sense to use regular GPL for programs that are part of the repo and LGPL for libraries only (except C++ bindings)? Best regards, Bartosz Golaszewski