Viral permissiveness

Steve Thomas steve.thomas.private at
Wed Jan 21 17:55:53 UTC 2009

Thanks for all your replies. They've all been helpful.

Randall > I think you may want to look at the RPL-Reciprocal Public
License-I think it may be close to what you want.

I would like "reciprocity" in the following sense: if and when parties
make derivations or compound derivations of my code available, they
should be on the same terms as my own original code.

The RPL itself seems to be quite a restrictive license. For example,
it describes the ability of parties "to acquire open source software
and derive financial benefit from it without having to release their
improvements or derivatives to the community which enabled them" as a
"loophole". I would be tempted to call it a "freedom" ;)

Matthew > I'm not going to address this, as it's deliberately inflammatory [..]

There's a resonant point within his invective. For me it was somewhat
edifying and motivating, though, as you say, not constructive. When a
GPL-fan relicenses a BSD-fan's work, is he protecting the community
from the "missed opportunity" to safeguard important freedoms? Or is
he morally arrogant, abusing an altruist's goodwill by defying his
accompanying preferences?

Matthew > [..] you /don't/ want Takesallsorts to be able to license
the "work as a whole" (in GPLjargon) under GPL [..]

Confession: I don't understand dual licensing, but then again I'm not
sure that the legal system does, either :) Suffice to say, in the
scenario I gave, any third party should be able to obtain
Takesallsorts' derivative work under the terms of the original virally
permissive license.

Matthew > You /do/ want derivative works of Takesallsorts' work a
whole to be allowed.

Yes, all derivative works allowed, subject only to copyright
preservation. The license would bite upon distribution.

Matthew > And you don't want recipients of those derivative works to
be guaranteed the ability to request source.

That's right: binary-only distributions of derivative works would be permitted.

Ean > When you license under the BSD you go into that understanding
that you are implicitly granting the right to relicense under the GPL.
It doesn't make sense to cry about this as some kind of evil behavior
of the GPL because it is a function of the terms of the BSD license.

The BSD license does not seem to fully reflect the relevant wishes of
the quoted licensor. After grumbling, the licensor has only two
reasonable routes, does he not? He could idealistically turn the other
cheek, or pragmatically adopt a more fitting license. I recognise the
nobility in the former choice and sympathise with the consequent
suffering, but would not make that choice myself.

Chuck > A better way of obtaining that result would be to modify the
"2-clause BSD", MIT, or ISC licenses with an extra clause which
explicitly forbids anyone from re-licensing the work or any
derivatives of the work under a different license.

And thus create a copyleft 2-clause BSD? Those are the lines I was
thinking along. I presume that the GPL has the most legally-defensible
copyleft. What about removing clauses from the GPL, rather than adding
my own attempt at copyleft to BSD? As should be very clear by now,

Ben > Almost certainly this [GPL-compatibility] is impossible.
Yeah. Are there any lurking lawyers prepared to contribute an opinion?
Have I just asked a naive question?

Ben > Furthermore there is an interesting irony here. [..] from the
point of view of a BSD project, your anti-GPL license is as bad as the
GPL license itself!

Yes indeed! However, if they are prepared to look at the contract not
in a literal fashion, but only up to "behavioural equivalence", it
might be acceptable to them. Let me explain what I mean. Not being a
lawyer, I don't care that much about the wording of the contract _per
se_, except for the copyright notice(s). Rather, I care only about the
effect it has upon the actions, or propensity to act, of all parties.

Consider the following, non-exhaustive, list of actions a party might perform :
  Cb(f)   copy a binary-file f
  Cs(f)   copy a source-file f
  Db(f)   distribute a binary-file f to anyone for use in any field of endeavor
  Ds(f)   distribute a source-file f to anyone for use in any field of endeavor
  R(f)     run a binary-file f
  T(f,f')   translate a source-file f to its binary-file f'
  W(F,f) create a source-file f from a set F of source-files in their
possession. Copyrights must be preserved.

Note this list does not include relicensing. After any
'copy/derivation chain' ending in any party having source-file f, I
want that party to have the right to:
  (1) Cs(f)
  (2) Ds(f)
  (3) T(f,f'), and the right to then R(f') or Cb(f') or Db(f') without
obligation to Ds(f)
  (4) W(F,f') where F includes f and is miscible

(3) glares/shines depending on your attitude. When described this way,
isn't this pattern of rights some sort of "iterative closure" of the
"single-step" BSD-license?

Nigel > MPL might be the closest in what he wants.
I haven't had time to look yet. I'll do this, then start
license-hacking. I'm rather surprised a license doesn't already exist.



[1] The Open Source Definition

My GnuPG key ID is 0x82314996
Preferred keyserver: hkp://

More information about the License-discuss mailing list