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

Copyright/license headers #43498

Merged
merged 2 commits into from
Jul 27, 2017
Merged

Copyright/license headers #43498

merged 2 commits into from
Jul 27, 2017

Conversation

joshtriplett
Copy link
Member

@joshtriplett joshtriplett commented Jul 26, 2017

(As discussed with @aturon and @est31. CC @rust-lang/core.)

Currently, rust-lang/rust includes notices that say things like

The Rust Project is copyright 2010, The Rust Project
Developers.

or

Copyright (c) 2010 The Rust Project Developers

or

// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.

These notices aren't accurate. "Copyright YYYY Some Name" has a specific legal meaning, and "The Rust Project Developers" isn't a legal entity. In practice, the actual legal structure is that all Rust contributors retain their copyrights when contributing to Rust, and just license them under MIT/Apache-2.0. Our legal notices should reflect that.

This came up because of RFC 2044, which proposed fixing this for the RFC repository. That effort started out by copying the rust-lang/rust notices, propagating this issue.

Based on discussion with @aturon, the two of us propose the following:

  • Delete the per-file notices entirely, for any files licensed under the standard terms. (Keep notices for anything that's not MIT/Apache-2.0.)
    • An alternative to that would be to just delete the first paragraph of the standard notice, and keep the second paragraph that points to the MIT and Apache 2.0 licenses.
  • Delete the first paragraph of LICENSE-MIT (the inaccurate pseudo-copyright line), leaving only the text of the MIT license.
  • Edit the COPYRIGHT file to more accurately describe the situation (changing the pseudo-copyright line immediately under "longer version", and editing the text that starts with "additional copyright may be ...", to just always state that copyrights are retained by the Rust contributors, and licensed under MIT/Apache-2.0 (with the exceptions to that explicitly noted in that file).

If @rust-lang/core is fine with this proposal, I'd be happy to provide a pull request with the proposed fixes.

@Mark-Simulacrum Mark-Simulacrum added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-core Relevant to the core team, which will review and decide on the PR/issue. labels Jul 26, 2017
@aturon
Copy link
Member

aturon commented Jul 26, 2017

Per the core team meeting today, everyone is on board. PR welcome!

@est31
Copy link
Member

est31 commented Jul 26, 2017

I don't want to file a PR for this, so anyone please go ahead!

@rust-highfive
Copy link
Collaborator

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@joshtriplett
Copy link
Member Author

joshtriplett commented Jul 26, 2017

For a first pass, I've attached a pull request that addresses LICENSE-MIT and COPYRIGHT. If this looks good, we can work on dropping the individual file notices separately.

(Edit: based on the wrong branch, rebasing.)

@est31
Copy link
Member

est31 commented Jul 26, 2017

I think for the RFC repo I'll replace the top paragraph with This file is subject to copyright. See the COPYRIGHT file at the top-level directory of this distribution and at http://rust-lang.org/COPYRIGHT..

LICENSE-MIT contains the line "Copyright (c) 2015 The Rust Project
Developers", which implies that an entity called "The Rust Project
Developers" holds copyrights in Rust. Rust contributors retain
their copyrights, and do not assign them to anyone by contributing.
Remove the inaccurate notice.
Avoid implying that any copyrights have been assigned to a separate
entity (such as "The Rust Project Developers") Rust contributors retain
their copyrights, and do not assign them to anyone by contributing.

Remove the inaccurate notice, and provide a clear explanation. Avoid
stating that all files contain copyright notices and/or license notices,
and especially avoid suggesting that the license terms only apply to
files marked as such.

In the process, this also drops a separate notice that implies only some
copyrights are retained by contributors (suggesting that others are
not).
@joshtriplett
Copy link
Member Author

@est31 I think the intention is to avoid having notices in individual files at all, at least in rust-lang/rust.

@aturon
Copy link
Member

aturon commented Jul 26, 2017

This looks great! Thanks @joshtriplett

@bors: r+ rollup

@bors
Copy link
Contributor

bors commented Jul 26, 2017

📌 Commit f1de27f has been approved by aturon

@aturon aturon assigned aturon and unassigned alexcrichton Jul 26, 2017
The Rust Project is copyright 2010, The Rust Project
Developers.
Copyrights in the Rust project are retained by their contributors. No
copyright assignment is required to contribute to the Rust project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you include the "No copyright assignment is required" sentence, you should also talk about what is required, namely that by contributing, you agree to license the content under the given licenses and assert that you have the legal authority to license the content, or the content was given to you by a third party... or something like that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd just remove the sentence.

Copy link
Member Author

@joshtriplett joshtriplett Jul 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's typically implicit when contributing to an Open Source project. Most projects don't state that explicitly. And I would suggest that we avoid explicitly writing language like "by contributing ... you agree ...", because that starts to look more like a contract or CLA.

Rust doesn't use anything like the DCO, either.

@est31
Copy link
Member

est31 commented Jul 27, 2017

I think the intention is to avoid having notices in individual files at all

I think that's pretty bad, because it would then open the gates for discussion on which part of the source code is licensed and which one is only given to people for reference. Like idk individual tests from the testsuite. They are not part of the rust compiler.

I'm against omitting license headers entirely.

@joshtriplett
Copy link
Member Author

@est31 There shouldn't be any code that isn't licensed accordingly; if there were tests that were not appropriately licensed, they'd need to be removed. To the best of my knowledge, there aren't any such issues in the repository.

Nonetheless, in the interests of not bikeshedding this, it'd also be fine to keep the license notices, and just drop the inaccurate copyright paragraphs. I really don't care that much between those two options; it's up to the core team.

@aturon
Copy link
Member

aturon commented Jul 27, 2017

I think that's pretty bad, because it would then open the gates for discussion on which part of the source code is licensed and which one is only given to people for reference. Like idk individual tests from the testsuite. They are not part of the rust compiler.

I'm against omitting license headers entirely.

The legal guidance we've received suggests that these notices aren't serving any purpose; what matters is the top-level content being revised here, which requires an explicit opt-out of the standard licensing.

@joshtriplett
Copy link
Member Author

rust-lang/cargo#4331

@bors
Copy link
Contributor

bors commented Jul 27, 2017

⌛ Testing commit f1de27f with merge 0565653...

bors added a commit that referenced this pull request Jul 27, 2017
Copyright/license headers

(As discussed with @aturon and @est31. CC @rust-lang/core.)

Currently, rust-lang/rust includes notices that say things like
```
The Rust Project is copyright 2010, The Rust Project
Developers.
```
or
```
Copyright (c) 2010 The Rust Project Developers
```
or
```
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
```

These notices aren't accurate. "Copyright YYYY Some Name" has a specific legal meaning, and "The Rust Project Developers" isn't a legal entity. In practice, the actual legal structure is that all Rust contributors retain their copyrights when contributing to Rust, and just license them under MIT/Apache-2.0. Our legal notices should reflect that.

This came up because of RFC 2044, which proposed fixing this for the RFC repository. That effort started out by copying the rust-lang/rust notices, propagating this issue.

Based on discussion with @aturon, the two of us propose the following:

- Delete the per-file notices entirely, for any files licensed under the standard terms. (Keep notices for anything that's *not* MIT/Apache-2.0.)
  - An alternative to that would be to just delete the first paragraph of the standard notice, and keep the second paragraph that points to the MIT and Apache 2.0 licenses.
- Delete the first paragraph of LICENSE-MIT (the inaccurate pseudo-copyright line), leaving only the text of the MIT license.
- Edit the COPYRIGHT file to more accurately describe the situation (changing the pseudo-copyright line immediately under "longer version", and editing the text that starts with "additional copyright may be ...", to just always state that copyrights are retained by the Rust contributors, and licensed under MIT/Apache-2.0 (with the exceptions to that explicitly noted in that file).

If @rust-lang/core is fine with this proposal, I'd be happy to provide a pull request with the proposed fixes.
@steveklabnik
Copy link
Member

A related ticket #39897

@bors
Copy link
Contributor

bors commented Jul 27, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: aturon
Pushing 0565653 to master...

@@ -1,5 +1,3 @@
Copyright (c) 2010 The Rust Project Developers
Copy link

@wking wking Jan 11, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm having trouble squaring this removal with the “The above copyright notice and this permission notice shall be included…” sentence below. @joshtriplett, do you think that will be a problem, now that there is no longer an above copyright notice?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe so, no. The requirement is to reproduce what's there; if something isn't there you don't need to reproduce it.

wking added a commit to wking/license-exprs that referenced this pull request Jan 11, 2018
Generated with:

  $ curl -s https://raw.githubusercontent.com/rust-lang/rust/1.23.0/LICENSE-MIT >LICENSE-MIT

Rust dropped their copyright line from LICENSE-MIT in
rust-lang/rust@2a8807e8 (LICENSE-MIT: Remove inaccurate
(misattributed) copyright notice, 2017-07-26, [1]).  I'm not clear on
how that interacts with the "The above copyright notice and this
permission notice shall be included..." line [2], but it's better than
not including the MIT text at all (which is where we were before this
commit).

[3] has the same text (although it has a copyright template), but
using Rust as the source gets us the Rust-standard line wrappings ;).

[1]: rust-lang/rust@2a8807e
[2]: rust-lang/rust#43498 (comment)
[3]: https://opensource.org/licenses/MIT
liZe added a commit to Kozea/WeasyPrint that referenced this pull request Jan 2, 2020
Everything is replaced by a more explicit message in the COPYRIGHT file.

Inspired by rust-lang/rust#43498 and rust-lang/rust#57108.
peterhj pushed a commit to peterhj/regex-syntax that referenced this pull request Feb 23, 2020
The Rust project determined these were unnecessary a while back[1,2,3]
and we follow suite.

[1] - rust-lang/rust@0565653
[2] - rust-lang/rust#43498
[3] - rust-lang/rust#57108
@joshtriplett joshtriplett deleted the fix-notices branch June 29, 2020 18:35
bhajneet added a commit to bhajneet/viewer that referenced this pull request Jun 15, 2022
see rust-lang/rust#43498 for copyright notice discusssion

Signed-off-by: Bhajneet S.K <bhajneet@gmail.com>
bhajneet added a commit to shabados/viewer that referenced this pull request Jun 15, 2022
see rust-lang/rust#43498 for copyright notice discusssion

Signed-off-by: Bhajneet S.K <bhajneet@gmail.com>
bhajneet added a commit to shabados/infrastructure that referenced this pull request Jun 16, 2022
bhajneet added a commit to shabados/theme-tool that referenced this pull request Jun 16, 2022
bhajneet added a commit to shabados/eslint-config that referenced this pull request Jun 16, 2022
bhajneet added a commit to shabados/actions that referenced this pull request Jun 16, 2022
bhajneet added a commit to bhajneet/docs that referenced this pull request Feb 22, 2023
I have gotten permission from previous contributors to this project.

See rust-lang/rust#43498 for copyright notice discusssion
bhajneet added a commit to bhajneet/mobile that referenced this pull request Mar 3, 2023
I have gotten permission from previous contributors to this project.

See rust-lang/rust#43498 for copyright notice discusssion
bhajneet added a commit to shabados/mobile that referenced this pull request Mar 15, 2023
I have gotten permission from previous contributors to this project.

See rust-lang/rust#43498 for copyright notice discusssion
bhajneet added a commit to shabados/presenter that referenced this pull request Mar 15, 2023
I have gotten permission from previous contributors to this project.

See rust-lang/rust#43498 for copyright notice discusssion
Harjot1Singh pushed a commit to shabados/presenter that referenced this pull request May 23, 2024
I have gotten permission from previous contributors to this project.

See rust-lang/rust#43498 for copyright notice discusssion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-core Relevant to the core team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.