Jörn has posted 4 posts at DZone. View Full User Profile

GPL Aftermath Part 1: Commercial Support, ExtJS

09.08.2008
| 7055 views |
  • submit to reddit

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

Published at DZone with permission of its author, Jörn Zaefferer.

(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

The GPL isn't about money, or products, or support contracts. It's not about making the lives of corporate programmers easier. It's about freedom. The idea is that when you get a piece of software the source code comes with it. Not only is the source available but you are free to modify it if it doesn't serve your purposes. This is free as in speech, not free as in "without effort or price". The price for having the freedom to modify the source is the restriction that you must share alike. If your motivation is not freedom (as in free speech) then you should not choose the GPL.

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

I support the classpath exception. I think it was a smart move for Sun to use the same license as GCJ and the classpath project. The GPL guarantees the freedom of the end user to tinker with the software. It guarantees that there will be no binary-only most-nearly compatible derivatives of the software. It prevents embrace-extended-extinguish and fosters an environment of community contribution, because anyone involved is required to follow the rules. I'm not saying it's the perfect license for everything but Apache/MIT/BSD all allow for binary only derivatives. There is no freedom in binary only software. It only leaves a loophole for non-community driven interests to subvert valuable content that a dedicated open community may have developed.

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

"It absolutely prohibits use of covered software in all manner of business scenarios."

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

 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.

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).

He claims that 10 developers working on a project will require $26,000 in Qt licenses, and so GTK is more cost effective than Qt. Let's investigate how much this factors in to a commercial project. Say the project takes two years to develop, with 10 developers. That's 20 developer-years of wages. Let's say we have "reasonable" programmers, working for $75,000/year. That's a total of $1,526,000 in wages and license fees. $26,000 is 1.7% of this cost. $26,000 is probably close to the amount of money spent on free t-shirts and stuffed monkeys distributed at trade shows by software companies. These costs do not take into account overhead such as rent, bandwidth and utilities, hardware, and other general expenses. However, the Qt licenses do not evaporate after the project is done. The developers might. So might an "open" project which is not financially controlled.

Let's consider the further benefits of Qt. Based on my experience porting GTK applications to Qt, the resulting code is typically 30%-60% smaller than the GTK equivalent (in terms of lines of code). Let's assume this cuts development time by... 10% (to be conservative). 10% of $1,526,000 is over $150,000! That's approximately 6 times the cost of the Qt licenses. Furthermore, there is commercial support available from Trolltech. Who provides free GTK support to offset this? Public forums? Businesses surely enjoy having to rely exclusively on public forums!

Another pro dual-licensing text (MySQL FAQ)

The dual licensing business model is a "win-win" for all parties:

  • MySQL's open source community gets superior software for no cost
  • MySQL's commercial customers have the option of using reliable, community "battle tested" MySQL software for a relatively low cost
  • MySQL's business is healthy and viable, which also strengthens the open source movement

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

[quote=asgeirn]
 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.

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:

Can I release a non-free program that's designed to load a GPL-covered plug-in?

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.