Problems I see with the GNU General Public License (Version 2 and the Version 3 drafts) 1: Service providers loophole There has been much talk in the open source community about this loophole, it is widely known that companies providing services using open source software have been getting away with 'cheating' by simply storing the modified software on their servers and allowing users to interact with the software over the network. By operating in this fashion they comply with the GPL without actually having to give back any modifications or even giving access to the unmodified original source code because technically, by the definitions given by the GPL, they have not distributed the software. This needs to be stopped IMO. 2: Use (and possibly modify) but don't distribute loophole Not all GPL software is related to providing services over the network. In my experience, companies only make available their modifications to GPL software if they absolutely must (if they have distributed the software). I believe the fact that not all GPL'd software is used by service providers to basically run applications remotely is an important one. For example, lets say there is a monitoring system, XYZmon, that is available for free on the internet under the terms of the GPLv2. A hosting company, can download XYZmon, configure it, and use it to monitor everything in its datacenter XYZmon supports. Soon, the company discovers XYZmon doesnt scale well as the datacenter continues to grow, so they fork XYZmon and put some developers on the project, effectively making it proprietary. After a year or so of development, XYZmon has become an incredibly scalable piece of software and now supports almost twice as many device and service types for monitoring, and can even do it's monitoring at 10 times the resolution previously possible. The developers employed by the company realize how incredibly better their fork is than the current state of the original XYZmon, so they request permission from their management to send the local fork sources upstream. Management ignores all requests and the company shows no interest in giving back to the community which provided the shoulders to stand on with the original XYZmon allowing the company to get where it is now in such short time. What options do the developers have? Were they "distributed" or "propagated" copies of the software or are they essentially part of the corporation working on a single copy the company downloaded? Even if the employees believe the GPL gives them right to distribute their modified version because they have copies of it, even though this is all done on behalf of the corporation paying them, do they have the guts to just release it to the wild and probably lose (or at least seriously hurt) their jobs in the process? This is a problem, and it's not all that different from problem #1. It's becoming increasingly apparent that the license simply needs to require source availability of the original program and any modifications if you are executing the program, in any form. There is an effort to plug the service providers loophole, it's known as HPL, the Honest Public License. HPL is simply the GPLv2 with minor modification, most notably: d) For the purposes of determining the right to obtain copies of the source code (as well as the right to modify and distribute such source code and object code), the term distribution shall include the communication of the Program or work based on the Program which is intended to interact with third party users (meaning anyone other than you or if you are an entity such as a corporation and not an individual, that corporation), through a computer network and the user shall have the right to obtain the source code of the Program or work based on the Program. This provision is an express condition for the grants of license hereunder and any such communication shall be considered a distribution under Section 1, 2 and 3. This helps, it is an improvement because it will protect things like web applications from being modified extensively and never getting redistributed. But is this really a total solution? What about programs that are very useful and advantageous but dont get used by anyone outside the party who downloaded, modified it, and continues to use it under the radar? I don't think the GPL is doing a good job of protecting our freedom in these situations, and I do believe they are quite common. Hell, at Hostway I remember two cases just off the top of my head that were major service provider loophole exploitations: proprietary blog app made from wordpress proprietary ecommerce system made from oscommerce Hostway would *go great lengths* to avoid installing copies of modified gpl packages among the customers data, because it had no interest in giving away code it developed even though it was all done standing on the shoulders of the free community. There were also plenty of applications all over the place that had gpl code sucked in or inherited from legacy software that was being improved, but there was no concern of gpl compliance because there was never any intention of distribution. But in most cases, the gpl software was being improved, and the community as a whole would have benefitted from getting the changes. Shady? sure, irritating? yep. Illegal? nope. Unethical? nope. Hey, the license set the rules, they are playing by them. Do I want to release my software under the GPLv2 or v3 drafts as-is after these experiences? NO. Why? Because I won't be free to see what changes were made to my software by companies or individuals that made it more efficient, more scalable, more useful, or even better, more profitable, simply because they avoided distributing it. Distribution is becoming less and less important in terms of software usability, as networks continue to get faster and bandwidth cheaper, it will only get worse... imagine a time where nobody has software other than a core operating system just to run *gasp* a web browser. And this doesnt even have to do with the cases where software doesnt provide service but simply performs tasks (monitoring, trading, rendering...). (C) 2006 Vito Caputo -