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

Suggestion to add library target which omits L-GPL deps (i.e luksan) #568

Closed
markusgft opened this issue Sep 23, 2024 · 9 comments
Closed

Comments

@markusgft
Copy link

Dear all,
First of all, thanks for the great work, this is an incredibly useful package.
I have a question (and maybe suggestion) regarding the license of NLOpt, it being a collection of different (possibly modified) sources with different licenses from different authors. It looks like the large majority of original sources would be permissively licensable, only a few sources are non-permissively licensable, most outstandingly src/algs/luksan/COPYRIGHT which is L-GPL.
NLOpt as a whole might be considered L-GPL because everything is lumped into one main library target here.
Have you considered adding a separate library target (maybe called nlopt_notice or similar) which omits problematic headers and sources, such that you could offer a "reduced" version of NLOpt under permissive license? At first sight, this might be doable with a few modifications to CMakeLists. Your opinion would be very much appreciated, happy to discuss further!
Thank you
Markus

@markusgft
Copy link
Author

Dear all, a friendly ping! Please let us know if the above suggestion is worth following up!

@markusgft
Copy link
Author

markusgft commented Oct 2, 2024

Pullrequest #569 sketches out the basic idea behind the proposal above, I hope this is helpful. The changes are still incomplete, just for information and discussion.

@jschueller
Copy link
Collaborator

it would be easier not to create a new library but just exclude the ones you dont want
what's the use-case exactly ? LGPL is pretty permissive isnt it ? do you need explicitely something even more permissive ?

@markusgft
Copy link
Author

it would be easier not to create a new library but just exclude the ones you don't want

Thank you, that was a good comment. Of course this is easier, and I'll adopt it in the next update to above pullrequest!

what's the use-case exactly ? LGPL is pretty permissive isnt it ? do you need explicitely something even more permissive ?

Eventually, I'll want to distribute commercial software, which (amongst many others) has NLOpt as a dependency. However, the specific aspect of NLOpt that we'll want to use is not L-GPL. The fact that Luksan cannot be easily dropped from NLOpt renders the whole package "unusable". So, we would like to be able to build a "subset" of NLOpt only.
Including the L-GPL deps would require us to use dynamic linking, see e.g. discussions here. Dynamic linking is unfortunately not an option for us, and the same holds for many other companies out there. I believe that the overall impact and distribution of NLOpt could be multiplied if we'd offer a version that was fully permissive!

@markusgft
Copy link
Author

@jschueller are you okay with the general direction #569 is taking? Do I need to get any other stakeholders on board for this change? I would like to drive this to a mergeable state in a next step, unlike there are any major concerns that need more in-depth discussion.
Thanks for your feedback so far!

@jschueller
Copy link
Collaborator

this is fine to me, maybe this just needs clarification about the resulting license when luksan is disabled, is it MIT ?
maybe this could be added in the https://nlopt.readthedocs.io/en/latest/NLopt_License_and_Copyright/ section
what do you think @stevengj ?

@markusgft
Copy link
Author

Please also see the (small) modifications I proposed for the COPYING file in #569. Thanks!

@markusgft
Copy link
Author

Friendly ping to @stevengj, your feedback is required to unblock #569 .

@markusgft
Copy link
Author

  • friendly ping, I am still waiting for feedback.

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

2 participants