Whether it's Apache on your Web servers or Linux supporting your databases, free open-source products, just like those from Microsoft Corp., have software licenses. And it's wise to know your rights and the responsibilities that accompany these legal documents.
The first thing to remember is that open source, as advocates never tire of explaining, means free as in freedom rather than free as in price. Open-source players such as Red Hat Inc. are allowed to charge any amount to package and distribute the technology. Of course, you can bypass that expense by going to a Web site that stores the source code and downloading it for free. But the licensing requirements remain in force.
It's also important to know that there are many types of open-source licenses. There are a few quirks among the various licenses, which is why there are so many and why you'll need to review them before you venture into open-source development. For example, the ultraefficient one-page BSD license has a mere three points to comply with, but the 12-page Mozilla Public License 1.1 covers everything from definitions of terms to how the license applies to governments.
A key open-source licensing provision, as noted in the Mozilla license and others, is that if you change the code, you must document your changes and include your source code in the documentation.
Most important, as stated in the GNU General Public License (GPL): "You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License." In other words, if you use an open-source program anywhere in your code, your product must comply with open-source strictures.
And like most software, open-source licenses describe products delivered in "as is" condition with no warranty that they will actually work.
Quite a few companies offer open-source versions of their commercial products, and more are doing so, adding another level of complexity to licensing issues.
For example, in May, NetDive Inc. released an open-source version of its Web conferencing software, eAuditorium. NetDive CEO B. Dean Angari says this will help companies review the technology internally. "Our customers can modify the code, create derivative products and distribute internally, and they don't have to pay royalties," he says.
Although NetDive's contract "mirrors" the popular GPL, it isn't sanctioned by "open-source die-hards," Angari acknowledges.
Most companies that venture into open source for their commercial products either seek approval of their open-source approach, like Sun Microsystems Inc. did with its Sun Industry Standards Source License, which affects a portion of its software, or they use an existing license.
Oslo-based Trolltech AS has made a successful business of delivering Qt, its application development framework, in both GPL-based open-source and commercial versions.
John Palmeri, manager of core animation software at The Walt Disney Co. uses a commercial version of Trolltech's product. But before buying it, Disney took advantage of Qt's open-source nature by testing it extensively without having to worry about an evaluation period coming to an end. Even after Disney bought Qt, Palmeri says, "having the source code in-house is a big win for us."
"For one thing, we don't have to worry about code escrow agreements," Palmeri says. "Further, we can compile and use Qt under different compilers or different versions of the same operating system without major headaches."
Then there are the things he was able to do as code creator. "As a developer, I was able to use inheritance to extend or modify the functionality of Qt's classes," Palmeri says.
"For instance, one of the early versions of Qt had a problem trapping a mouse double-click. I was able to write a method to trap the double-click and still retain the basic mouse functionality provided by the Qt API [application programming interface]," he says. "Having the source code also allows our developers to look under the hood so they can learn not only what the API call does, but how it does it."