Part one of this blog series discussed permissive and weak copyleft open source licenses. Permissive licenses allow you to use and make changes to the software without having to distribute the source code to your application. The weak copyleft licenses allow you to use the software without distributing your source code, but require you to use their license once you make changes to the source code (meaning release whatever you’ve changed). Part two focuses on the strong copyleft licenses, and I list some companies that contribute to the open source community.
The GNU General Public License is the most popular open source license. The GPL is a strong copyleft license, which means that any software that depends on and is distributed with other GPL’d software must be licensed under the GPL, therefore all source code must be made available when you distribute your software. Two massive open source projects, the Linux kernel and MySQL, are GPL’d projects. Let’s say I distributed an application (free or commercial) that has to work with MySQL. If I bundle MySQL in my application, I have two choices to make:
- Release the source code to my application under the GPL
- Purchase a commercial version of MySQL from a reseller that uses a proprietary license
I can also choose not to bundle MySQL and request that users of my application need to download MySQL to avoid releasing the source code.
All licenses mentioned earlier are important to learn when distributing third-party open source libraries that your application requires. None of the above licenses apply if your software is hosted in-house and customers interact with your software over the network in a SaaS/ASP/On-demand fashion. But now we come to the Affero General Public License. The Affero clause in this license states that if you use AGPL’d software in your application, then all users that access your application over the network must have access to all of your source code. iText is the most popular Java PDF library. Version 5 of the iText library was changed to use the AGPL. The open source reporting frameworks BIRT and JasperReports depend on this library for generating PDF reports. These frameworks now have to be released under the AGPL in order to continue distributing their reporting frameworks with the newest version of iText or else they continue to use the old version of iText, which is what they are currently doing.
Many programmers prefer copyleft licenses like the GPL so that their software is not exploited by companies that do not give back to the open source world. However lots of software companies that benefit from open source software give back to the community. The following is just a small list of companies and the open source software they provide that I’m just listing off the top of my head.
Apple maintains Webkit, an open source web browser layout engine, which is used by their Safari web browser and also the Google Chrome web browser. Apple maintains the open source CUPS project, which is a printing service for Unix, and hired the CUPS main developer to continue to maintain the project.
Google’s Android is entirely open source and uses the Apache license. Google opened most of its Chrome web browser to a project called Chromium. Google even has a place on the web called Google Code which hosts thousands of open source projects for free. Google is set to release later this year an open source operating system called Chrome OS, which is based heavily on Linux.
IBM released the entire Eclipse framework to the open source community, along with Derby and a community edition version of Websphere.