From: Brian Candler Date: 2003-07-11T17:18:18+09:00 Subject: Re: My brief and torrid affair with Ruby. On Fri, Jul 11, 2003 at 11:31:10AM +0900, Daniel Carrera wrote: > The point is that after you include GPL code into yours, your code does > not automatically become GPL. If you later wish to distribute your code > without breaking the license you have two options. Well, you have more than two options. These include: 1. Throw your work away (i.e. undo all the work you did by incorporating the GPL code; then either rewrite that section or find a non-GPL alternative) 2. Release it anyway, in contravention of copyright law 3. Contact the author(s) of the GPL part(s) of your code and get them to agree to licence their work to you under a different licence. 4. Release it under the GPL or a licence which is equivalent to the GPL Options (1) and (2) are not particularly appealing. Option (1) says, in effect, "if the GPL prevents you distributing the code in its current form in the way that you want to, then distribute something else". Great. Option (3) is tedious, may not be practical (if the authors are not contactable), and of course they are perfectly entitled to refuse. So, given that your work already incorporates GPL code, the only option which you can be sure will be available is option (4). (And of course, if you get a licence under option (3), then you are using the code under a non-GPL licence, so we could exclude this option from discussion of "what you can do with purely GPL code" anyway) If before you started writing your project, you knew you wanted to release it under a non-GPL licence, then you would clearly avoid using GPL'd libraries in the first place, or else first check out option (3), i.e. get a non-GPL licence before you start. Otherwise you would have to resign yourself to the fact that you may only be able to release code under option 4, in which case your own code has become tainted by the GPL, potentially against your wishes. This is what is meant by "forcing" you to use the GPL, or "viral" licencing: IF I use GPL code in my application, AND I wish to distribute it at any point, THEN it is true that I *must* distribute my code under a GPL-equivalent licence (unless I can get the GPL code released to me under a non-GPL licence, which means it's not GPL anyway) Clearly I have the choice to negate the antecedents to that statement: - by not using GPL code in my application - by not distributing my application If using GPL code in my application forces me not to use GPL code in my application, that is a contradiction (hence if I have decided to use a particular GPL library, I cannot take this route) Otherwise, using GPL code forces me not to distribute my application, or to distribute it under the GPL. This is an infringement of liberty which I *must* accept *if* I am to use GPL code. Regards, Brian.