Closed hongkai-dai closed 2 years ago
Thanks for considering this request! I work with @hongkai-dai; here are some more details...
I think Apache-2.0 is best if possible, but another fine option is MPL-2.0 -- see also wikipedia. Drake's friction with the LGPL comes from the forced dynamic linking, not the disclosure of modifications. With MPL, anyone who distributes programs with CMA-ES modifications would still need to share the source to code those modifications (as with LGPL), but would not be prevented from linking CMA-ES statically. For portability and robustness, linking statically is often better for our users, especially to avoid dependency conflicts.
@hongkai-dai @jwnimmer-tri Thanks for asking. My understanding is that LGPL does not forbid you from linking statically, as long as you are making sure users can link against another version of the lib [1]. Always good to hear from people who are trying to remain compliant!
That being said, Apache 2.0 is a good and fair license, I'd just wait for @nikohansen approval in this case to make an addition to the current COPYING file.
You may not always be able to get authors to change a license to ease a build system though :)
[1] https://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking
Sure, no problem for me to add the Apache 2.0 license.
Thanks for your consideration!
Once y'all finish discussing, if you could update the LICENSE file in github with the new decision, that would be the best way to conclude the question from my point of view as a user.
And just to be clear, for my part I am happy with either switching to Apache-2.0 exclusively, or to allow the user the choice of either LGPL or Apache (as is done with https://github.com/CMA-ES/c-cmaes/blob/master/LICENSE).
My understanding is that LGPL does not forbid you from linking statically ...
Yes, that's true; my summary above was short and incomplete. In practice, however, the options other than dynamically linking all end up even worse for our users. (Our releases would double in size, including shipping a flavor of python wheels that can never work correctly, etc.)
You may not always be able to get authors to change a license to ease a build system though :)
For sure! Drake actually has 2 LGPL dependencies already (thought sometimes we need to exclude them), and we will probably start to use libcmaes
no matter the outcome here. But if we can ask the question early and prevent some future struggles by our users, then that's even better.
Done.
Thanks a lot!
Thanks for providing this solver. I am wondering if it is possible to add an option of supporting Apach 2.0 license, as the c-cmaes solver did. We would like to use libcmaes in our software Drake, but the LGPL3.0 license makes it slightly harder for our build systems.