Skip to content

Licensing of Unicode-related functionality? #98116

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

Open
anp opened this issue Jun 14, 2022 · 5 comments
Open

Licensing of Unicode-related functionality? #98116

anp opened this issue Jun 14, 2022 · 5 comments
Labels
A-licensing Area: Compiler licensing A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-Unicode Area: Unicode T-leadership-council Relevant to the leadership council.

Comments

@anp
Copy link
Member

anp commented Jun 14, 2022

In the course of reviewing licenses for Fuchsia's external dependencies, we've noticed that some crates in the ecosystem, including std, make use of Unicode data files, but don't seem to treat the code generated from those data files as bound by the Unicode license. Unicode has a licensing FAQ but I'm not sure how normative that is.

IANAL, so I'm not sure whether the Unicode license should apply to the files in core which seem to be generated from the Unicode data files, but I wanted to raise the possibility for the project to consider.

@eggyal
Copy link
Contributor

eggyal commented Jun 15, 2022

@rustbot label +A-meta +T-core

@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself T-core Relevant to the core team, which will review and decide on the PR/issue. labels Jun 15, 2022
@pietroalbini pietroalbini added the A-licensing Area: Compiler licensing label Jun 15, 2022
@Manishearth
Copy link
Member

Manishearth commented Nov 21, 2022

Yeah I think it's probably a mistake for unicode-rs to not have the Unicode-DFS license. We inherited the license from back when these crates were a part of rust's stdlib code though.

Unicode-DFS is basically MIT (but applies to data too), so it's not really a problem, but we might need to relicense? There's also iffiness on the licenseability of data though.

ICU4X rigidly follows Unicode-DFS and some of the unicode-rs crates have been doing the same.

@c-git
Copy link
Contributor

c-git commented Dec 14, 2022

Have we raised this to the rust foundation for review by a lawyer?

@Manishearth
Copy link
Member

I believe @pnkfelix has been looking into that

@c-git
Copy link
Contributor

c-git commented Dec 20, 2022

I contacted the Rust Foundation and the below is an excerpt from their response:

Further to your email, I had a chat with our legal counsel just to confirm my own understanding. 

It’s very common for an open source project (and the corresponding package) to declare a single license for the project, despite including source code for any number of dependencies under other compatible licenses. Take the Linux kernel, for example: it’s primary license is GPLv2, but it contains code licensed under any number of permissive licenses that are compatible with the GPL.

To comply with these licenses, it’s typically necessary to include a complete copy of each license any time the project is distributed in source or executable form. The Rust project includes the Unicode license in its COPYRIGHT file for this reason: 
https://github.com/rust-lang/rust/blob/master/COPYRIGHT. Likewise, anyone distributing Rust binaries should include a copy of the Rust COPYRIGHT file so they comply with all of the applicable open source licenses.

That said, it’s not necessary to declare every license that applies to the codebase in the “license” metadata field for the package. That field should be understood to mean something like: “this is the overall license for the package, but other compatible (i.e. similarly or more permissive) licenses may apply to some portions.” Comprehensive licensing information should be kept in an obvious place in the repository (and corresponding packages), usually the LICENSE or COPYING file. In Rust’s case, it’s COPYRIGHT, LICENSE-APACHE, and LICENSE-MIT.

In short: it’s not necessary to add the Unicode license to the crate’s license Metadata. The Unicode license should be reproduced in any crate containing Unicode-licensed code.

Hope that answers your question

@workingjubilee workingjubilee added the A-Unicode Area: Unicode label Jul 22, 2023
@ehuss ehuss added T-leadership-council Relevant to the leadership council. and removed T-core Relevant to the core team, which will review and decide on the PR/issue. labels Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-licensing Area: Compiler licensing A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-Unicode Area: Unicode T-leadership-council Relevant to the leadership council.
Projects
None yet
Development

No branches or pull requests

8 participants