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

Relicense under Apache-2.0 OR MIT. #844

Merged
merged 13 commits into from
Nov 11, 2024
Merged

Conversation

xStrom
Copy link
Member

@xStrom xStrom commented Nov 8, 2024

Resvg is being relicensed under the Apache-2.0 OR MIT dual license. For for more background on that see #838.

The practical steps to make that happen are as follows:

  • Readme license section updates for the repository root and for all published packages.
  • LICENSE-APACHE and LICENSE-MIT files in the repository root and in the root of all published packages.
  • LICENSE-SUMMARY.txt file for the explorer-thumbnailer installer. The txt extension may be required.
  • Cargo.toml license info sourced from a single virtual workspace Cargo.toml license field.
  • Authors now tracked in the AUTHORS file and referenced as the Resvg Authors.
  • A new CI check to verify formatting of Rust source files, and existence of copyright headers in Rust/C/C++ source files.
  • New standard Linebender copyright headers in all Rust/C/C++ source files, including auto-generated ones.
  • More packages properly defined as workspace members in the virtual workspace Cargo.toml.
  • A few formatting changes done by cargo fmt.
  • Unix style line endings in explorer-thumbnailer.
  • Changelog entry to notify users of the license change.

@xStrom
Copy link
Member Author

xStrom commented Nov 8, 2024

Can't have explorer-thumbnailer be part of the workspace immediately, as it contains Windows-only code. Will have to deal with it later, as the solution is too large to be part of this PR.

Copy link
Member

Choose a reason for hiding this comment

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

cc @golsby - are part of our move to MIT/Apache 2.0, the NOTICE file would gain legal significance (due to the Apache 2.0 license), which wasn't desired. Because of this, we're removing that file.

(For context, see #697)

For cases where you require something to attribute, I'd suggest using both of the existing and new copyright notices:

Copyright (c) 2017 Yevhenii Reizner
Copyright (c) 2024 The Resvg authors

We can document this somewhere if you need that, although note that we cannot put that in a file named NOTICE or with a name containing NOTICE, due to the clause in the Apache 2.0 license.

Copy link
Member

@DJMcNab DJMcNab left a comment

Choose a reason for hiding this comment

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

Looks very good. I'm not sure if we're completely read to merge this yet, but this seems right to me.

Comment on lines +56 to +61
## Contribution

Contributions are welcome by pull request.
The [Rust code of conduct] applies.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
Copy link
Member

Choose a reason for hiding this comment

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

In Xilem Core and Android Trace, I excluded this section from crate READMEs; a contribution is solely a repository level concern, so it isn't needed for clutter up the crate level README. Practically though, including it is also fine. Just providing this as food for thought

Copy link
Member Author

Choose a reason for hiding this comment

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

We have like 5 different variations of this across our repos. It's on my list to get standardized and then we can get back to it for all repos.

For now, I'd leave it as-is and get back to it with the result of the more detailed discussion.

keywords = ["svg"]
license = "MPL-2.0"
license.workspace = true
edition = "2021"
rust-version = "1.65.0"
description = "An SVG simplification library."
Copy link
Member

Choose a reason for hiding this comment

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

Should we also exclude "codegen"?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, but that is automatic.

Regardless of whether exclude or include is specified, the following files are always excluded:

@@ -3,7 +3,7 @@ AppName="resvg Explorer Extension"
AppVersion="0.44.0"
VersionInfoVersion="0.0.44.0"
AppVerName="resvg Explorer Extension 0.44.0"
AppPublisher="Yevhenii Reizner"
AppPublisher="The Resvg Authors"
Copy link
Member

Choose a reason for hiding this comment

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

Maybe? I don't mind leaving this as-is. Perhaps use and the Resvg authors instead?

Copy link
Member Author

@xStrom xStrom Nov 8, 2024

Choose a reason for hiding this comment

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

It's no different than all the other source files, which have been 99% written by Yevhenii Reizner. Even so, both here and elsewhere I went ahead with the more inclusive but concise standard of the Resvg Authors.

@sorairolake
Copy link
Contributor

In conjunction with this change, I suggest making to make the project compatible with the REUSE Specification. REUSE was started by the Free Software Foundation Europe (FSFE) to provide a set of recommendations to make licensing your Free Software projects easy, comprehensive, unambiguous, and machine-readable.

reuse can be used to help achieve and confirm this suggestion.

@xStrom xStrom merged commit cfb2ee5 into linebender:main Nov 11, 2024
4 checks passed
@xStrom xStrom deleted the newlicense branch November 11, 2024 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants