-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Licensing for stdlib dependencies #11488
Comments
LLVM uses Apache 2 with LLVM exceptions since 9.0, UIUC before that. compiler-rt is dual-licensed under MIT and UIUC. Apart from the public documentation, I think the |
It may be worth having a separate warning about it on any page that instructs about how to do static compilation too. |
I do a lot of Open Source license compliance consulting for law firms and their customers, and corporations directly. Licensing issues are a deterrent to commercial use of the language. The problem also exists in shards, not all of which carefully document their library dependencies and the licenses on those libraries because the authors haven't been trained to do so. The dynamic library dependencies should be carefully documented in the top directory LICENSE, because right now it's just the Apache license, and that's not the whole story. There should be a recommendation that programs with anything other than an Open Source license not be static linked, for reasons of compliance with LGPL. Redistribution of a compiled Crystal program would currently require distribution of a number of license files with the binary, certainly all of the LGPL ones and no doubt others. The entire set should be in a directory pointed to by LICENSE, including licenses that do not have an explicit requirement to distribute their own text with a binary. Compliance folks generally distribute every license, and they should be able to just copy that directory and be done. |
Apparently |
Crystal's standard library has some dependencies on C libraries, and so do programs which use the standard library. Some dependencies apply to all programs (used by core lib from the prelude), some only if you require specific parts of stdlib (like
YAML -> libyaml
, orBig* -> libgmp
).When these dependencies are used, their licenses apply to the compiled programs as well. This has implications for users building and distributing programs with these libraries.
This has been originally brought up in #11480 (comment) with the observation that libraries licensed with LGPL are problematic for static linking (http://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic).
Here is a list of libraries and their licenses:
We should discuss whether we see any necessary action about this.
Making the licensing situation clear in documentation could be a first step (see #11480 (comment)). This might not be our responsibility in general (we just provide bindings for the libraries, not the libraries themselves), but it would be a service to users. However, we're also shipping some libraries in our distribution packages (custom build of libgc in most packages, more in the bundled package).
Additionally, we could consider actions to improve the overall licensing issue. For example, we could try to move to more freely licensed libraries to make distribution of Crystal software easier. That's probably not going to be easy, though.
The text was updated successfully, but these errors were encountered: