GPL Aftermath Part 1: Commercial Support, ExtJS
As a follow up of my Why GPL? Or: How the GPL eats the kittens it protects post, I’d like to discuss a few comments and explain some misconceptions, my own included.
The first comment was by Kevin H:
I think the article is very well written. After seeing how apache projects end up in commercialware time and time again, and at prices that are mind blowing for enterprise usage, the more interested I’ve become with GPL projects. I have found that GPL projects have a lower price points than apache projects when comparing their commercial counterparts. This lower barrier to entry for commercial endevours is very nice. I would have to pay 3x in a support contract for an apache licensed software than an equivalent commercial license with support from a GPL vendor. From an Enterprise (commercial) point of view, I’d rather see a GPL offering than an apache offering.
To paraphrase: When looking for commercial support for a given type of software, Kevin found that GPL-licensed software is way more attractive than more liberal licensed projects, eg. Apache License. I can’t confirm that, as in most cases vendors don’t list prices on their pages. Usually they ask you to contact their sales team instead. It would be interesting to hear from others about their experiences with commercial support for open-source software.
Next up, a comment by Alan Knowles:
While everyone has the right to decide on their licence, what annoyed alot of people about ExtJs’s changes was that it was more of a bait and switch.. Gather a large community based on the code being BSD, then LGPL style, then switch it to GPL and force everyone to pay.. - for something they have help build. Which is why forking ExtJS (see. roojs) was the only option for those dependant on it.
While I can understand the critique of changing the license from very liberal (BSD), to less liberal (LGPL) to viral (GPL), I doubt the bad intentation Alan suggests. Looking at the licensing-history of ExtJS and the reasoning behind the changes, it looks more like inexperience than “bait and switch”. Inexperience in the sense that Jack didn’t expect other companies to exploit his work and the license, unlike eg. the people at SpringSource (see the Why GPL? post).
Still, the GPL doesn’t seem like the right choice for ExtJS. As Dean explains:
You can use as much GPL’d code in your web application as you wish. If you sell your web application to other entities (meaning they get a copy of the code to do what they want with it) then that’s considered distribution and your code is now GPL’d.
Web applications are not distributed and you do not need to share your code.
From this point of view, you can use ExtJS in your web application, and the point here is to protect the work against other companies. As Jack put it:
Ext JS 1.0 is released under the LGPL, minus the Assets license as mentioned above. Shortly thereafter 2 major publicly traded corporations (names withheld) embedded Ext JS into their development frameworks. With no mention of Ext JS except in credits files that no one ever saw. No support for all the work that had been put into the framework. Neither one of them even contacted us. How can that be possible? Can they do that? How can we compete with them taking such a large chunk of our potential customers?
Which makes me wonder why Alan and co. had to fork ExtJS. It would be more obvious if Jack’s license of choice would have been the AGPL, as Jose Maria Arranz points out:
I agree, this is the reason AGPL v3 (Affero GNU Public License) was invented for. AGPL is the GPL for web (network based) applications.
If you want to ensure that everyone who uses your open-source software in a closed-source web application buys a commercial license, the AGPL should be the license of choice. It basically excludes the “using” case that the GPL leaves open. The GPL FAQ explains the type of usage:
If the program is expressly designed to accept user requests and send responses over a network, then it meets these criteria. Common examples of programs that would fall into this category include web and mail servers, interactive web-based applications, and servers for games that are played online.
If a program is not expressly designed to interact with a user through a network, but is being run in an environment where it happens to do so, then it does not fall into this category. For example, an application is not required to provide source merely because the user is running it over SSH, or a remote X session.
So while you can use and modify GPL-licensed ExtJS code without having to GPL your web application, the AGPL would exclude that, too.
The second part of the GPL Aftermath will deal with the Open-Source Java and how Sun handles that, also discussing the “GPL+classpath exception”.
Thanks to everyone who commented!
From: bassistance.de
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Collin Fagan replied on Mon, 2008/09/08 - 1:14pm
Jess Holle replied on Mon, 2008/09/08 - 1:37pm
GPL != freedom!
It absolutely prohibits use of covered software in all manner of business scenarios.
One has to assume that anywhere the GPL license is used absolutely intends to prevent such re-use -- which is the code license holders' right, of course, but it takes a very twisted mind to see this as "freedom", at least compared to Apache/MIT/BSD style licenses.
Where exceptions have been added to GPL, e.g. the "classpath exception" for OpenJDK, it is equally clear that the license holders wanted to ensure they did not restrict certain specific types of re-use. Thanks to such exceptions, the OpenJDK allows the important re-use cases to proceed unhindered while protected itself from "harmful" re-use.
Collin Fagan replied on Mon, 2008/09/08 - 3:42pm
Mark Murphy replied on Mon, 2008/09/08 - 8:50pm
in response to:
Jess Holle
"GPL != freedom!"
By that argument, civil society != freedom, as it prohibits all sorts of activities which it defines as "crimes".
The goal of the GPL is not to maximize the applicability of any given piece of software to the widest set of possible uses. The goal of the GPL is to maximize the freedom of software in the aggregate, just as a society backed by laws tries to maximize citizen happiness, even at the cost of imprisoning some people.
"It absolutely prohibits use of covered software in all manner of business scenarios."
Your argument as phrased is prima facia false. "It absolutely prohibit use...in all manner" basically means you feel GPL cannot exist in businesses. I own a business. We use GPL'd software. We exist. Ergo, your argument is false. Not to mention the wide range of businesses that use GPL'd software, like Linux, every day. Not to mention that the GPL does not prohibit "use" (as defined by copyright law and as generally applied to software) in any way, shape, or form -- it prohibits redistribution without compliance with its terms, not use.
Had you phrased your argument as "It prohibits the redistribution of covered software in a number of common business scenarios", I wouldn't be quibbling.
"One has to assume that anywhere the GPL license is used absolutely intends to prevent such re-use"
Since the subject of this phrase appears to be "anywhere", and since places cannot "intend" things, it is unclear what you are attempting to say here.
"which is the code license holders' right, of course, but it takes a very twisted mind to see this as 'freedom', at least compared to Apache/MIT/BSD style licenses."
I'll try phrasing an earlier point a different way: the goal of the GPL is to maximize the body of software that is available under terms that meet the Four Freedoms. The goal of the GPL is not to maximize the number of places a given piece of software can be used.
Jess Holle replied on Mon, 2008/09/08 - 9:29pm
in response to:
Mark Murphy
By
I didn't mean that it prohibited all use of the software in all business scenarios.
Rather I meant that is prohibits use of the software in many business scenarios of various sorts. It effectively prohibits use of the software in even more scenarios due to fear of anything like a grey area.
GPL = freedom in the same manner that socialism does. Very limited freedom for the business individual. It forces all re-use to remain open and has a viral "opening" effect that cannot be tolerated in many business scenarios.
I love open source, but if you don't have the freedom to open everything or do contorted distributions GPL can be very limiting and feel far from free.
Asgeir S Nilsen replied on Tue, 2008/09/09 - 3:52am
in response to:
Jess Holle
GPL limits distribution, not use. Which means you cannot take GPL software, extend it, and distribute it without providing the source code. You are however free to use it in pretty much any matter you like.
It is therefore only limiting only if you distribute the software and have reservations on distributing the source code of what you build.
Have you read the GPL FAQ? It explicitly deals with questions like whether copying within a corporation counts as distribution.
Jose Maria Arranz replied on Tue, 2008/09/09 - 4:22am
GPL and AGPL in development libraries make business sense with Dual Licensing. I think dual licensing mixes the best of both worlds: open source and proprietary.
I know the prominent tendency in open source business is paying for support. The problem of this model is very few customers pay the bills for development, because only a very small percentage of commercial users buys support or any other kind of commercial service.
Dual licensing follows the traditional model of paying per development (or production) license if you want to use the software in a closed source environment. If the software works fine the price of a commercial development/production license may be lower than the typical support license.
If your software is open source, GPL or AGPL is for you.
In this link, "A Quick Cost Analysis of Qt vs GTK", George Staikos talk about this with a concrete example: QT vs GTK (in this analysis no commercial support for GTK is taken into account).
Another pro dual-licensing text (MySQL FAQ)
Some examples of dual-licensed software:
* MySQL
* OpenSolaris, OpenJDK, GlassFish ... Sun software in general.
* QT
* Alfresco
* Funambol
* ItsNat ... ok I run this software :)
Jeroen Wenting replied on Wed, 2008/09/17 - 3:43am
in response to:
Asgeir S Nilsen
GPL limits distribution, not use. Which means you cannot take GPL software, extend it, and distribute it without providing the source code. You are however free to use it in pretty much any matter you like.
It is therefore only limiting only if you distribute the software and have reservations on distributing the source code of what you build. [/quote]
Which goes as far as requiring you to release your sources if your application runs a script on a Linux machine where that script runs a GPL'd system command because now you're suddenly "linking with GPL'd code".
That's why GPL is too dangerous to burn yourself on. Someone coming after you may not be dilligent to prevent such hidden links and make a mistake, with the result that your company can get hit with lawsuits costing millions and forcing them to throw their main products out for grabs to the masses of script kiddies.
Jose Maria Arranz replied on Wed, 2008/09/17 - 3:53am
"Which goes as far as requiring you to release your sources if your application runs a script on a Linux machine where that script runs a GPL'd system command because now you're suddenly "linking with GPL'd code""
Noooo, this is not "linking", please read the GPL FAQ:
It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.
Jeroen Wenting replied on Tue, 2008/09/23 - 5:50am
in other words, "we'll decide when and as so challenged whether it violates the license or not". Sounds like a rather sweeping statement which essentially includes every use, unless some gratious GPL advocate himself decides at some point that it's OK for that particular use.
Not something I want to expose my applications to.