3

I'm looking for a license (for a C library) which basically says:

"Redistributions in binary form must be accompanied by the source code of Larger Work (My code + Your code)"

i.e., L = M + Y, with '+' here meaning, for example, static linking / dynamic linking.

And there must be no more restrictions other than this. If I choose my license 'X' as:

  • GPL - source code of Larger Work, both M and Y, must also be licensed as whole under GPL.
  • LGPL - My code continues to be LGPL, Your code can be kept closed-source if needed.
  • BSD - source code of neither M nor Y need be disclosed.

To be more clear, the binary must be under the license 'X' but source code of Larger Work must be made available -- under whatever license the Author of Larger Work wants, it need not be restricted to 'X'. LGPL comes close, but it does not mandate the source availability of Your code.

Example use case: Author of Larger Work must give the his recipient all of his source code (both M and Y) but can ask the recipient to sign an NDA restricting modification of Y, but the recipient is allowed to study Y.

In short, 'X' shouldn't have hereditary characteristics (like *GPL) yet source code availability should be mandated.

Is there such a "non-viral" FOSS license ?

Thanks in advance !

PS: I asked this question first on StackOverflow, someone there suggested that I post it in this site. That question was closed as off-topic there, and I've deleted it from SO.

1
  • 2
    Your question at least to me makes no sense.
    – Ramhound
    Feb 13, 2012 at 14:02

2 Answers 2

9

Eh, that wouldn't work. The reason that the GPL works is precisely because it is transitive (viral).

To show how your scheme is defeated: I set up a shell company X. I release my project to X as per your requirements: "source code of Larger Work must be made available -- under whatever license the Author of Larger Work wants". So, I don't put any obligations on X. In turn, X releases your sourcecode under BSD terms. I haven't violated your license terms, X hasn't violated my license terms, and X has no contractual obligations to you.

1
  • 1
    Ah, I missed the second chain -- licensee of a licensee. Thanks for pointing it out. Feb 13, 2012 at 16:24
1

You're calling your requirements "non-viral", but in fact they are viral. Let's call it YVL (Your Viral License).

"Redistributions in binary form must be accompanied by the source code of Larger Work (My code + Your code)"

This is pretty much equivalent of GPLv2. Both GPL an YVL are viral, as L2 = L + Y2 <=> L2 = M + Y + Y2. Thus any code which uses any code that ever linked to yours, has to conform to YVL. Exactly analogous to GPL.

GPL - source code of Larger Work, both M and Y, must also be licensed as whole under GPL.

This is not true. Regardless if you use GPL or YVL, the "Larger Work" must be licensed as such. However, the code that you're not author of may be licensed under any compatible license (see: licenses compatible with GPL).

2
  • I guess it becomes GPL-like only if I say: "Redistributions in binary form must be accompanied by the source code of Larger Work (My code + Your code) which must be distributed under the same terms as this license. " I haven't mentioned the latter clause intentionally. Feb 13, 2012 at 16:25
  • Thing is, you're talking about library. Thus chance is, that distributed code contains unmodified code of your library. A person who is not a copyright holder cannot just change license. Ok, YVL is not as viral as GPL, but still..
    – vartec
    Feb 13, 2012 at 16:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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