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 dual MIT/Apache-2.0 #847

Closed
53 of 63 tasks
emberian opened this issue Jan 10, 2016 · 107 comments
Closed
53 of 63 tasks

Relicense under dual MIT/Apache-2.0 #847

emberian opened this issue Jan 10, 2016 · 107 comments

Comments

@emberian
Copy link
Contributor

emberian commented Jan 10, 2016

This issue was automatically generated. Feel free to close without ceremony if
you do not agree with re-licensing or if it is not possible for other reasons.
Respond to @cmr with any questions or concerns, or pop over to
#rust-offtopic on IRC to discuss.

You're receiving this because someone (perhaps the project maintainer)
published a crates.io package with the license as "MIT" xor "Apache-2.0" and
the repository field pointing here.

TL;DR the Rust ecosystem is largely Apache-2.0. Being available under that
license is good for interoperation. The MIT license as an add-on can be nice
for GPLv2 projects to use your code.

Why?

The MIT license requires reproducing countless copies of the same copyright
header with different names in the copyright field, for every MIT library in
use. The Apache license does not have this drawback. However, this is not the
primary motivation for me creating these issues. The Apache license also has
protections from patent trolls and an explicit contribution licensing clause.
However, the Apache license is incompatible with GPLv2. This is why Rust is
dual-licensed as MIT/Apache (the "primary" license being Apache, MIT only for
GPLv2 compat), and doing so would be wise for this project. This also makes
this crate suitable for inclusion and unrestricted sharing in the Rust
standard distribution and other projects using dual MIT/Apache, such as my
personal ulterior motive, the Robigalia project.

Some ask, "Does this really apply to binary redistributions? Does MIT really
require reproducing the whole thing?" I'm not a lawyer, and I can't give legal
advice, but some Google Android apps include open source attributions using
this interpretation. Others also agree with
it
.
But, again, the copyright notice redistribution is not the primary motivation
for the dual-licensing. It's stronger protections to licensees and better
interoperation with the wider Rust ecosystem.

How?

To do this, get explicit approval from each contributor of copyrightable work
(as not all contributions qualify for copyright, due to not being a "creative
work", e.g. a typo fix) and then add the following to your README:

## License

Licensed under either of

 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

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 dual licensed as above, without any
additional terms or conditions.

and in your license headers, if you have them, use the following boilerplate
(based on that used in Rust):

// Copyright 2016 gfx Developers
//
// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
// http://opensource.org/licenses/MIT>, at your option. This file may not be
// copied, modified, or distributed except according to those terms.

It's commonly asked whether license headers are required. I'm not comfortable
making an official recommendation either way, but the Apache license
recommends it in their appendix on how to use the license.

Be sure to add the relevant LICENSE-{MIT,APACHE} files. You can copy these
from the Rust repo for a plain-text
version.

And don't forget to update the license metadata in your Cargo.toml to:

license = "MIT OR Apache-2.0"

I'll be going through projects which agree to be relicensed and have approval
by the necessary contributors and doing this changes, so feel free to leave
the heavy lifting to me!

Contributor checkoff

To agree to relicensing, comment with :

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

Or, if you're a contributor, you can check the box in this repo next to your
name. My scripts will pick this exact phrase up and check your checkbox, but
I'll come through and manually review this issue later as well.

@serpis
Copy link
Contributor

serpis commented Jan 10, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

8 similar comments
@milibopp
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@nulldatamap
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@andrew-d
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@KokaKiwi
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@olsonjeffery
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@abonander
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@brendanzab
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@red75prime
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@cl91
Copy link
Contributor

cl91 commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0
license, allowing licensees to chose either at their option.
On 11 Jan 2016 16:13, "red75prime" notifications@github.com wrote:

I license past and future contributions under the dual MIT/Apache-2.0
license, allowing licensees to chose either at their option.


Reply to this email directly or view it on GitHub
#847 (comment).

@jeremija
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@ghost
Copy link

ghost commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option

@mike-marcacci
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

7 similar comments
@mtsr
Copy link
Contributor

mtsr commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@vickenty
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@asheb
Copy link
Contributor

asheb commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@toqueteos
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@hannobraun
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@lucidd
Copy link
Contributor

lucidd commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@photex
Copy link
Contributor

photex commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@bfops
Copy link
Contributor

bfops commented Jan 11, 2016

I approve the relicensing of my contributions.

@ghost
Copy link

ghost commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

1 similar comment
@munshkr
Copy link
Contributor

munshkr commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@emberian
Copy link
Contributor Author

@flodiebold
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

5 similar comments
@yuriks
Copy link
Contributor

yuriks commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@bvssvni
Copy link
Contributor

bvssvni commented Jan 11, 2016

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@ReadmeCritic
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@mzmonsour
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@gaudecker
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@scoopr
Copy link
Contributor

scoopr commented Mar 20, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

2 similar comments
@Diggsey
Copy link
Contributor

Diggsey commented Mar 20, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@phlmn
Copy link
Contributor

phlmn commented Mar 20, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@djmcgill
Copy link

djmcgill commented Mar 20, 2018 via email

@tocubed
Copy link
Contributor

tocubed commented Mar 21, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

3 similar comments
@davll
Copy link
Contributor

davll commented Mar 22, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@mitchmindtree
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@grtlr
Copy link
Contributor

grtlr commented Apr 10, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@greenmughal
Copy link

Wow somebody mailed me....

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option

@jamiltron
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@greenmughal
Copy link

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option. @ahmedaliadeel

@paezao
Copy link
Contributor

paezao commented Apr 10, 2018

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

1 similar comment
@burtonageo
Copy link
Contributor

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@Skepfyr
Copy link
Contributor

Skepfyr commented Apr 16, 2018

Beginning of the end

This comment is here to document the exact state of the master branch as of 6fc06da. All changes following 4dfa4f1 were licensed under the dual license due to the update of the README that occurred in that commit. As authors of pull requests that were open at the time may not have seen this change consent was explicitly obtained from them. The list of merged and open PRs with their authors is:

PR Author
#1565 kvark
#1570 davll
#1665 AIOOB
#1765 msiglreith
#1768 kvark

This information can be obtained from these two search queries:
is:pr created:<=2018-01-27 closed:>=2018-01-27
is:pr is:open created:<=2018-01-27

Most contributors have agreed to this change explicitly on this issue, an archive of which can be obtained here. The table that follows is a list of the status, I have decided on, of every person who authored a contribution to the repository before 4dfa4f1. This list of people can be obtained by running this python script:
https://gist.github.com/AIOOB/ad135e29c9bc67822fa0b061ad6cdca2

There are some inconsistencies due to name changes, people deleting their github account, etc. These are:

  • ahmedaliadeel is now greenmughal
  • ahtn has agreed but they do not appear to have contributed
  • Chris Dolby has deleted their account
  • David McGillicuddy is djmcgill
  • Franklin Delehelle is delehef
  • Jeroen Bollen is Binero
  • Tracy Ma is linuxaged

In the following table:

  • Agreed means the user has explictly agreed to the new license
  • None Remaining means the users contributions no longer exist in the codebase at 6fc06da
  • No Copyrightable Remaining means that the users contributions that remain in the codebase at 6fc06da are not copyrightable
Author Status
abonander Agreed
AdamRzepka None Remaining
aepsil0n Agreed
ahmedaliadeel Agreed
ahtn Agreed
AIOOB Agreed
alexcrichton Agreed
alexheretic Agreed
AlphaModder Agreed
ama0 None Remaining
amaranth Agreed
andrew-d Agreed
Androcas No Copyrightable Remaining
anthiste None Remaining
Anttonii None Remaining
asheb Agreed
axelmagn None Remaining
Bastacyclop Agreed
bfops Agreed
Binero Agreed
bjadamson Agreed
boguszaur None Remaining
bors Bot
brendanzab Agreed
burtonageo Agreed
bvanevery None Remaining
bvssvni Agreed
CensoredUsername None Remaining
Chase-C None Remaining
Chris Dolby No Copyrightable Remaining
cl91 Agreed
cmr Agreed
ColinKinloch Agreed
csherratt Agreed
DaseinPhaos None Remaining
dati91 None Remaining
davll Agreed
delehef No Copyrightable Remaining
Diggsey Agreed
djmcgill Agreed
dylanede Agreed
ebaklund No Copyrightable Remaining
ebkalderon Agreed
escalant3 None Remaining
eugene2k Agreed
farism Agreed
felipeagc Agreed
fkaa Agreed
flodiebold Agreed
ForestSharp Agreed
ForsakenHarmony Agreed
freebroccolo Agreed
fungos Agreed
gaudecker Agreed
grovesNL Agreed
grtlr Agreed
guycook None Remaining
Haggus Agreed
hannobraun Agreed
HeroesGrave Agreed
hexpointer None Remaining
homu Agreed
icefoxen Agreed
jahfer Agreed
jamiltron Agreed
jeremija Agreed
JohnColanduoni Agreed
juxiliary None Remaining
jplatte Agreed
keringar Agreed
Kerollmops Agreed
Kimundi Agreed
KokaKiwi Agreed
kvark Agreed
leonkunert Agreed
lidavidm None Remaining
linuxaged None Remaining
LPGhatguy None Remaining
lucidd Agreed
lxnt No Copyrightable Remaining
lynks-- None Remaining
MaikKlein Agreed
manuel-rhdt Agreed
martinlindhe No Copyrightable Remaining
mattbazooka No Copyrightable Remaining
matthew-mcallister None Remaining
mike-marcacci Agreed
mitchmindtree Agreed
msiglreith Agreed
mtsr Agreed
mttr Agreed
munshkr Agreed
mzmonsour Agreed
nical Agreed
nicholasbishop Agreed
Nitori- No Copyrightable Remaining
notriddle None Remaining
nulldatamap Agreed
oli-obk Agreed
olsonjeffery Agreed
omni-viral Agreed
ozkriff None Remaining
paezao Agreed
pcstl None Remaining
petevine Agreed
phlmn Agreed
photex Agreed
Potpourri None Remaining
pravic None Remaining
qres Agreed
readmecritic Agreed
red75prime Agreed
rhaps0dy None Remaining
Rhuagh Agreed
sbward None Remaining
scoopr Agreed
sectopod Agreed
Seeker14491 None Remaining
serpis Agreed
serprex Agreed
snuk182 Agreed
stjahns Agreed
thehydroimpulse Agreed
tioover Agreed
tocubed Agreed
tomaka Agreed
tomjakubowski None Remaining
toqueteos Agreed
torkleyy Agreed
ucarion No Copyrightable Remaining
vickenty Agreed
Vinatorul None Remaining
vitvakatu Agreed
xales None Remaining
xtian No Copyrightable Remaining
yuriks Agreed
zakorgy Agreed

Another archive was made on archive.org after this commit was posted to allow you to see what edits were made if any occur.

Next steps

Someone really should check this table for correctness, as it will be the reference in case of any future problems. The program and data I have provided should alleviate some of the work but peoples identities whether or not they have agreed or got any copyrightable contributions remaining all needs to be verified by another person.
This will take some time but if you are willing to help look up the bystander effect and then get checking!

After this, all that's needed is to update the license in the README on the master branch, the state of licensing before that commit can only be taken as Apache-2.0. All the of the pre-ll gfx branches will remain licensed as they were.

@emberian
Copy link
Contributor Author

wow @aioob, thanks for taking care of this! I know how much work it is to put that together.

@Skepfyr
Copy link
Contributor

Skepfyr commented Jun 9, 2018

I've gone ahead and checked it myself and there are only a few corrections/comments that I want to make:

  • Due to the fact that Github hides some comments in this thread due to how long it is, the archive.org mirror misses around 22 comments including some of people agreeing, this isn't much of an issue, Github now tracks comment edits, but is something to be aware of.
  • People are slowly changing their names, however, the commit history can be used to match up names, good luck if anyone needs to check this in the future. (ForestSharp -> ForestCSharp and petevine -> MagaTailor are the only changes at the time of this comment)
  • sbward actually agreed to the licensing change
  • Homu should be marked as a Bot rather than as Agreed
  • There are a few mistakes in the above table with the None Remaining option so take every user labelled as None Remaining to actually be No Copyrightable Remaining. This makes no difference to the ability to relicense the project but just improves the correctness of the transition.

And with that, I think it is done!

@est31
Copy link

est31 commented Jun 9, 2018

Github now tracks comment edits, but is something to be aware of.

Comment deletions are still an issue though, so we should find a way to archive the hidden comments as well.

@Skepfyr
Copy link
Contributor

Skepfyr commented Jun 9, 2018

Skepfyr added a commit to Skepfyr/gfx that referenced this issue Jun 9, 2018
bors bot added a commit that referenced this issue Jun 9, 2018
2133: Move to dual license r=kvark a=AIOOB

Dual license under Apache-2.0 and MIT. Now possible due to comments in #847.

 I think I have changed it everywhere the license comes up.

Co-authored-by: AIOOB <jack@rickard.plus.com>
@Skepfyr
Copy link
Contributor

Skepfyr commented Jun 9, 2018

We did it! As of 68d1539 the master branch is now dual licensed.

Thank you to the 96 of you who agreed to the license change it made my life much easier!

@kvark kvark closed this as completed Jun 10, 2018
fkaa pushed a commit to fkaa/gfx that referenced this issue Jun 21, 2018
adamnemecek pushed a commit to adamnemecek/gfx that referenced this issue Apr 1, 2021
847: Gecko-requested refactor r=cwfitzgerald a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
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

No branches or pull requests