I think the first thing you need to ask yourself when looking at the viral nature of the GPL is the audience. Arguments against the viral nature of the GPL are capitalist-centric and targeted towards owners of proprietary software companies and businesses. Arguments for the viral nature of the GPL favor independnet FOSS developers. Let me explain.
The viral nature of the GPL can be crudely summed up like this: If you take GPL’d code, modify it, and then redestribute it, that re-distribution must be under the GPL. Therefore, the code that you add or modify must also fall under the GPL. Ask yourself… why is this a problem?
First of all, the GPL does not preclude you from modifying GPL’d works and NOT redistributing it. If you are a major company that can gain competitive advantage by modifying FOSS software and including some information that may be confidential or may otherwise offset you from the competition, you can do so. As long as you keep those modifications in house and do not redistribute them, there is no issue. You can do anything you want to the code and not release it under the GPL… As long as you don’t release it at all.
Let’s consider motive here. Who would want to release modified GPL software under a license other than the GPL? Although I’m sure that people are going to able to respond to this with a thousand convoluted on-off cases… there are two ways to release software: Open and NOT Open. The primary reason to release something NOT Open is profit motive. Think about it… if your modifications offered a serious competitive advantage, you wouldn’t be re-destributing it anyway.
People who are against the viral nature are on the wrong side of the coin… they are on the receiving end of the software. As a distributer of software, the viral nature of the GPL works in your favor.
Let’s make up a fake example so that people can argue that it’s a straw man and blow it to pieces:
Say you needed a piece of software to help you manage a certain task, but none existed. Figuring out that this software can make your life a lot easier, you decide to write it. You scrape up what-ever time you can manage across life, a family, and a 50hr a week j0b. After 6 months of this, you have the application running and it truly makes your life easier. After 6 more months of refinement, you’ve really got the application humming and you think that maybe some other people like you could use it. You put it up on Sourceforge.
Now some software company sees your application there and realizes that there’s a huge untapped market for it. They realize that the exposure of your little application is minimal, and that with proper spin and marketing, they is a potential for millions of users worldwide and a huge profit. It is the viral nature of the GPL that stops them from being able to do this. Why should a company be able to repackage your work and sell it for profit? Why would a developer puts themselves in a situation where some other entity can profit from their unpaid labor (understanding that if you work for a major company and are paid to develop that this is a different arrangement all together).
The viral nature of the GPL also fosters more community effort. When you remove the profit motive, there is less reason for competition. There is no reason to completely repackage an application for a few small modifications when it is just as easy to work with the original developer to get your changes into the main development branch. Forks do happen, but they are more over philosophical or technical reasons.
When you consider developing or modifying software on another license, such as SUN’s new CDDL license, you do yourself justice by reading those license agreements carefully. Sure, you’re free to see the source code, and modify it, build upon it, use it. But what can you do with it afterwards. You’re allowed to submit it back to the company. What are they able to do with your code? Anything they want! Where the GPL protects your copyright on materials you develop, other licenses strip that away. SUN’s CDDL license may appear FOSS friendly at first glance, but it’s really not. The reserve the right to terminate the license and capture your work. Frankly, I just don’t understand why developers would offer to contribute code under these cirmcumstances. It’s basically like you were working directly for SUN without the paycheck and the benefits. Why would you subject yourself to that?
Typically, I find that when people refer to the “viral” nature of the GNU GPL they are refering to the fact that software that links against a GNU GPL’d program must also be GNU GPL’d. This is in contrast to the much less restrictive linking policies on some proprietary operating systems, such as Microsoft Windows. Microsoft does not have (AFAIK) any published restrictions against linking to their DLLs (Dynamically Linked Libraries).
This criticism from the proprietary software vendors is only noteworthy if you’re not up on your copyright law. You see, copyright law wasn’t written to handle to realities of software developement and linking to another piece of code is considered making a derivative work. Just like the fact that you can’t make a Mickey Mouse movie you can’t legally link to Microsoft’s DLLs either. Why does’t Microsoft sue people who link against their DLLs?, because they know they need software partners to grow — for now. My guess is that if Microsoft achieves the absolute monopoly on the market they are aiming for with Trusted Computing they will begin to demand developers acquire a DLL license.
On the other side the GNU GPL grants you a royalty-free license to link against any GNU GPL’d software if you only follow the clear terms of it’s license (which is copyleft). Software, typically libraries, can also use the GNU Lesser GPL (LGPL) which allows the same unrestrictive linking policy Microsoft allows for it’s DLLs but IN WRITING. With both the GPL and the LGPL you need never fear a policy shift because you have a license. I don’t think the GNU GPl is viral but I know Microsoft is evil.
-Dave
Comment by Dave "harda" Harding — April 18, 2005 @ 11:01 am