Companies that modify open source software spend a lot of time debating how best to circumnavigate the difficulties of open source licenses, most notably the GNU GPL (General Public License). I have to question whether that's always time well spent.
Many consider the GPL a "business-unfriendly" license because of its so-called viral nature: All software derived from GPL-licensed code must in turn be licensed under the GPL. For that reason, many open source software vendors -- including MySQL AB, Red Hat, Trolltech, and others-- offer their products under a dual-licensing scheme. If the GPL doesn't work for you, you can purchase the software under an alternative commercial license.
Of course, this doesn't make the Free Software Foundation (FSF), originator of the GPL, particularly happy. "One unfortunate consequence of this licensing model is that [these companies want] to encourage people to buy their proprietary license, rather than using the GPL," Dave Turner, GPL-compliance engineer at the FSF, told me in a recent e-mail.
But Scott Collins, evangelist at Trolltech, maker of the dual-licensed Qt application-development framework, doesn't wholly agree.
"To us, it comes down to a matter of quid pro quo, hence our dual license," Collins says. "To those who directly profit from our work, we ask only that they either also support the community by sharing their work -- as we have done and continue to do -- or support the continued development of Qt by buying appropriate development licenses."
Plus, Collins says, there are more reasons to choose the commercially licensed version of Qt than simply to support Trolltech. Qt presents an interesting case: As a library of code rather than a finished application, it practically requires anyone who uses it to create works derived from it. And any work derived from the GPL-licensed version of Qt automatically falls under the GPL.
Although some of the reported pitfalls of GPL licensing have been overstated, this does raise some legitimate concerns if you want your code to stay private. For example, modifying GPL-licensed code doesn't necessarily mean you have to make your own internal changes public, but once you show your changes to anybody outside your organization, the GPL automatically grants rights to your code to everybody.
This can be problematic in many situations. For example, distributing modified GPL-licensed software to an outside contractor means sharing your code with the world. Or if, in the course of due diligence, a potential merger candidate examines your previously undistributed modifications off-site, you've likewise let the genie out of the bottle.
However, Trolltech and the FSF agree completely on one point: You do have an option that eliminates these headaches without requiring you to spend an extra dime -- unless you want to help fund Qt development, that is.
You could just choose to make free software.
It's true: Fundamentally, the GPL is a political tool designed to promote the concept of free software. For a profit-minded business, that can be scary, but only if you presuppose that producing and encouraging free software is a bad thing for your company to be doing. Is it really? Are you sure?
Before you write off pure open source licensing, ask yourself the following questions: How important is it that my company's modifications to open source code remain private? What does my company gain from the expense of keeping them that way? And finally, what might my company gain from the alternative?