-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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: It's unclear exactly what license text must be included in a Rust binary. #67014
Comments
(I guess we could also try and start moving the various project components to using the |
This repo contains its licenses in the files
Edit: runtime crates are listed here: rust/src/tools/tidy/src/deps.rs Lines 50 to 52 in 0da5800
Looks like std includes them all except test . Application binaries are probably not including the test runtime. So I think license requirements for distributing a Rust binary in general could be determined by analyzing the dependency tree of the application plus the std crate (assuming there isn't code being added in other places that I'm not aware of).
|
Rustup distributes those files with its docs:
|
Doing an initial pass over LLVMLine 26 in acca818
Lines 53 to 57 in acca818
🐛 Many/most rustc-generated binaries don't comply with this? But it's not the only license LLVM bits are distributed under - the runtime bits in particular tend to be
That said, I'm not sure LLVM's take on MIT not requiring binary redistribution is accurate:
LLVM LibsLines 75 to 77 in acca818
There are also some ISC licensed libs but I don't think they're used in LLVM-generated code. There's also Intel licensed OpenMP stuff, which I also don't think is included in generated Rust code, but I'm slightly less certain of that... compiler-builtinsLines 79 to 80 in acca818
7e6c9f3 compiler-rt was moved to compiler-builtins 🐛 Should be rephrased? (Merged with other crates.io crates? But it's an oddball license...) Perhaps rephrased as:
libbacktraceLines 195 to 198 in acca818
🐛 I believe this section can be removed? crates.io dependencies / MIT copyright noticesFor distributing under Apache-2.0 license terms, the inclusion of 🐛 For distributing under MIT license terms, some copyright attributions missing from
(list is incomplete, |
Add license metadata for std dependencies These five crates are in the dependency tree of `std` but lack license metadata: - `alloc` - `core` - `panic_abort` - `panic_unwind` - `unwind` Querying the dependency tree of `std` is a useful thing to be able to do, since these crates will typically be linked into Rust binaries. Tools show the license fields missing, as seen in rust-lang#67014 (comment). This PR adds the license field for the five crates, based on the license of the `std` package and this repo as a whole. I also added the `repository` and `descriptions` fields, since those seem useful. For `description`, I copied text from top-level comments for the respective modules - except for `unwind` which has none. I also note that rust-lang#73530 attempted to add license metadata for all crates in this repo, but was rejected because there was question about some of them. I hope that this smaller change, focusing only on the runtime dependencies, will be easier to review. cc `@Mark-Simulacrum` `@Lokathor`
Add license metadata for std dependencies These five crates are in the dependency tree of `std` but lack license metadata: - `alloc` - `core` - `panic_abort` - `panic_unwind` - `unwind` Querying the dependency tree of `std` is a useful thing to be able to do, since these crates will typically be linked into Rust binaries. Tools show the license fields missing, as seen in rust-lang#67014 (comment). This PR adds the license field for the five crates, based on the license of the `std` package and this repo as a whole. I also added the `repository` and `descriptions` fields, since those seem useful. For `description`, I copied text from top-level comments for the respective modules - except for `unwind` which has none. I also note that rust-lang#73530 attempted to add license metadata for all crates in this repo, but was rejected because there was question about some of them. I hope that this smaller change, focusing only on the runtime dependencies, will be easier to review. cc ``@Mark-Simulacrum`` ``@Lokathor``
Add license metadata for std dependencies These five crates are in the dependency tree of `std` but lack license metadata: - `alloc` - `core` - `panic_abort` - `panic_unwind` - `unwind` Querying the dependency tree of `std` is a useful thing to be able to do, since these crates will typically be linked into Rust binaries. Tools show the license fields missing, as seen in rust-lang#67014 (comment). This PR adds the license field for the five crates, based on the license of the `std` package and this repo as a whole. I also added the `repository` and `descriptions` fields, since those seem useful. For `description`, I copied text from top-level comments for the respective modules - except for `unwind` which has none. I also note that rust-lang#73530 attempted to add license metadata for all crates in this repo, but was rejected because there was question about some of them. I hope that this smaller change, focusing only on the runtime dependencies, will be easier to review. cc ```@Mark-Simulacrum``` ```@Lokathor```
Add license metadata for std dependencies These five crates are in the dependency tree of `std` but lack license metadata: - `alloc` - `core` - `panic_abort` - `panic_unwind` - `unwind` Querying the dependency tree of `std` is a useful thing to be able to do, since these crates will typically be linked into Rust binaries. Tools show the license fields missing, as seen in rust-lang#67014 (comment). This PR adds the license field for the five crates, based on the license of the `std` package and this repo as a whole. I also added the `repository` and `descriptions` fields, since those seem useful. For `description`, I copied text from top-level comments for the respective modules - except for `unwind` which has none. I also note that rust-lang#73530 attempted to add license metadata for all crates in this repo, but was rejected because there was question about some of them. I hope that this smaller change, focusing only on the runtime dependencies, will be easier to review. cc `@Mark-Simulacrum` `@Lokathor`
Previous context: https://internals.rust-lang.org/t/does-the-standard-library-have-linking-exceptions-to-their-licensing/11377
Now obviously if you have
[dependencies]
from crates.io then you have to follow each appropriate license.But if you just make a "no dependency" program, you're still including all sorts of code from
std
/alloc
/core
/libm
/libc
/compiler_builtins
/hashbrown
and possibly others I'm not even thinking of.The text was updated successfully, but these errors were encountered: