5

I'm interested in borrowing functions from a file in a project dual-licensed as MIT-or-UNLICENSE in my package that I intend to also be dual-licensed as Apache-or-MIT. Is this possible? How should I properly cite the borrowed source?

My first thought is to add a disclaimer to the top of the derivative file saying it was taken under the terms of UNLICENSE (i.e. public domain), but unsure if that would be sufficient. Would including this mean my project won't actually be under the terms of the Apache-or-MIT license?

5

I don't really like the UNLICENSE, because I am not 100% convinced that that license does exactly what was intended in jurisdictions that don't allow you to dedicate your work into the public domain1.

The MIT license explicitly allow sublicensing of the work, so my recommendation would be to go that route. Then you can, in the file that you borrowed from the other archive, add a note below the existing license text that you sublicense that file under the Apache-or-MIT dual license.

1: One example of such a jurisdiction is Germany. There works only become public domain when the copyright term on the work expires 70 years after the death of the author.

| improve this answer | |
  • Would something like this be sufficient at the top of the file? "// Taken from the XXX repository under the MIT license", "// [EXISTING MIT LICENSE TEXT]", "// This file has been sublicensed under the Apache-or-MIT license." – Radish Dec 4 '19 at 16:06
  • 1
    The comment about the sublicensing would have to be a bit more explicit. More along the lines of "// This file has been sublicensed by @Michael under a dual license of the MIT license (see above) and the Apache 2.0 license // [LICENSE BLOCK FOR APACHE 2.0 LICENSE]". – Bart van Ingen Schenau Dec 4 '19 at 16:33
  • Thanks! Just to clarify, I believe it should be "MIT OR Apache" (not and), since "and" suggests a superset - see en.wikipedia.org/wiki/…. – Radish Dec 4 '19 at 20:16
  • @Michael, the phrase "dual license" indicates that there is a choice for the recipient. The things you can choose between are usually joined with "and". – Bart van Ingen Schenau Dec 5 '19 at 7:49
  • This is not true according to the SPDX spec: 'Disjunctive "OR" Operator: If presented with a choice between two or more licenses, use the disjunctive binary "OR" operator to construct a new lincense expression, where both the left and right operands are valid license expression values.', 'Conjunctive "AND" Operator: If required to simultaneously comply with two or more licenses, use the conjunctive binary "AND" operator to construct a new license expression, where both the left and right operands are a valid license expression values. ' – Radish Dec 5 '19 at 22:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.