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

deps.rs EXCEPTIONS needs to be re-triaged #63238

Closed
brson opened this issue Aug 3, 2019 · 2 comments · Fixed by #69443
Closed

deps.rs EXCEPTIONS needs to be re-triaged #63238

brson opened this issue Aug 3, 2019 · 2 comments · Fixed by #69443
Labels
T-core Relevant to the core team, which will review and decide on the PR/issue.

Comments

@brson
Copy link
Contributor

brson commented Aug 3, 2019

The EXCEPTIONS list lists license exceptions.

After reviewing a few of them, they seem to be out of date, and some that were copyleft are now permissive, and some have the proper license.

The purpose of this list is primarily to prevent non-permissively-licensed code from entering the Rust codebase, particularly the runtime. Permissively licensed code here effectively means "MIT or weaker", though as structured currently it actually makes anything without an MIT license an exception (BSD licenses are considered exceptions). This is fine and simplifies std's license (it's all MIT and most can be Apache, with the unfortunate exception of libbacktrace, which is BSD-3-Clause, and not represented in the exception list, potentially because of rust-lang/backtrace-rs#234).

They should all be re-triaged, and re-commented or removed from the exception list as appropriate. Here are some examples from a quick look:

  • thread-id - now Apache-2.0/MIT, was Apache-2.0, no longer an exception
  • ryu - now Apache-2.0/BSL-1.0 (nice decision @dtolnay w/ the permissive license + runtime exception). Still an exception per the rules in this file because it doesn't carry MIT. Aside: Apache-2.0/MIT/BSL-1.0 would be a good relicense for Rust. I'd prefer ryu be tri-licensed with MIT just for uniformity with the rest of the Rust MIT-licensed ecosystem.
  • utf8parse - Apache-2.0/MIT, not an exception
  • vte - Apache-2.0/MIT, not an exception
@Centril Centril added the T-core Relevant to the core team, which will review and decide on the PR/issue. label Aug 3, 2019
@dtolnay
Copy link
Member

dtolnay commented Aug 3, 2019

The ryu crate is licensed that way because I am not legally savvy enough to diverge from https://github.com/ulfjack/ryu where we get much of the code from. I would be open to someone with plausible legal credentials figuring out a way for it to be MIT as well.

@ehuss
Copy link
Contributor

ehuss commented Aug 3, 2019

See also #62618 which is a request to have tidy verify these.

Manishearth added a commit to Manishearth/rust that referenced this issue Mar 17, 2020
…mulacrum

tidy: Better license checks.

This implements some improvements to the license checks in tidy:

* Use `cargo_metadata` instead of parsing vendored crates. This allows license checks to run without vendoring enabled, and allows the checks to run on PR builds.
* Check for stale entries.
* Check that the licenses for exceptions are what we think they are.
* Verify exceptions do not leak into the runtime.

Closes rust-lang#62618
Closes rust-lang#62619
Closes rust-lang#63238 (I think)

There are some substantive changes here. The follow licenses have changed from the original comments:

* openssl BSD+advertising clause to Apache-2.0
* pest MPL2 to MIT/Apache-2.0
* smallvec MPL2 to MIT/Apache-2.0
* clippy lints MPL2 to MIT OR Apache-2.0
Centril added a commit to Centril/rust that referenced this issue Mar 19, 2020
…mulacrum

tidy: Better license checks.

This implements some improvements to the license checks in tidy:

* Use `cargo_metadata` instead of parsing vendored crates. This allows license checks to run without vendoring enabled, and allows the checks to run on PR builds.
* Check for stale entries.
* Check that the licenses for exceptions are what we think they are.
* Verify exceptions do not leak into the runtime.

Closes rust-lang#62618
Closes rust-lang#62619
Closes rust-lang#63238 (I think)

There are some substantive changes here. The follow licenses have changed from the original comments:

* openssl BSD+advertising clause to Apache-2.0
* pest MPL2 to MIT/Apache-2.0
* smallvec MPL2 to MIT/Apache-2.0
* clippy lints MPL2 to MIT OR Apache-2.0
@bors bors closed this as completed in 61fe2e4 Mar 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-core Relevant to the core team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants