Thank you for the thoughtful comments, Mike. I don't have much to add
-- mostly just agreement, plus one outstanding concern.
I agree that it is possible to specify a transitive grace period as an
added permission (to GPL or to copyleft-next) that is conditioned on
transitively offering the same added permission to the makers of works
derived from yours. I think the GCC Runtime Library Exception ¹ may
have a similar property of being an added permission with conditions.
(Thanks to Bradley Kuhn for the idea.)
I agree that compatibility is important, and I eventually shifted from
a version of TGPPL (I can retroactively call it TGPPLv0) that was
GPL-incompatible, to dual-licensing "GPLv2+|TGPPLv1+", and I intend to
go ahead and make TGPPLv2 be fully GPL compatible, even at the cost of
suffering the asymmetric rules of derivation that Ted warned about --
that people will always be able to make derivations of TGPPLv2'ed
works into GPL'ed works, but not the other direction.
Your skepticism that a licensing hack can help much with the big
picture is certainly justified. (On the other hand, if I had heard
about the idea of copyleft when it was a new idea, I would have been
not just skeptical but dismissive, but I would have been wrong!)
My one outstanding concern is about compliance. I perceive compliance
as already a huge problem with copyleft (i.e. [LA]GPL) and the
addition of a grace period would probably exacerbate it. If you
experienced folks have suggestions about that issue, I'm all ears.
The best situation for compliance is that someone exercises their
permission to keep their derived work *proprietary* for a grace period
but they actually *publish* the source code of their derived work.
That is, users are able to acquire a copy of the source, but they
don't have full rights to use it until the grace period expires. A
second-best situation is, as Mike mentioned, code escrow. I wonder if
code escrow is practically used. I've never heard of it in practice.
Thanks again for the useful conversation.
Regards,
Zooko
¹
http://www.gnu.org/licenses/gcc-exception.html