TrollTech, Qt, and Dual-licensing

I just had an hour discussion with some KDE developers on #kde-devel about TrollTech‘s dual-licensing of Qt on Windows (see the press release) and for Qtopia (press release). This means it uses the GNU Public License (GPL) for free apps, and Pay-for-it Commercial for closed source-apps.

My personal view is that TrollTech did the right thing. It promotes Free and Open Source (FOSS) applications on Windows and PDAs, but it also allows TT to make money. This money in turn allows TT to hire more coders, and generally produce better code. TT serves as an inroad for money in the FOSS community, and it also serves as inroad for commercial developers on Linux (because Qt is a multi-platform framework and UI toolkit).

Now, the GNOME camp is the competitor to the Qt/K Desktop Environment (KDE) camp. GNOME, and the UI toolkit it uses, GTK use the Lesser GNU Public License (LGPL). According to the Free Software Foundation, the GPL is considered “more free” than the LGPL.

The GNOME camp’s biggest gripe against KDE is that it depended on a non-free library, Qt. But thanks to TrollTech, the GNOME camp’s biggest gripe against KDE now is that KDE uses an “even more free” library. (Which puts GNOME in a weird position, since GNOME is the FSF’s poster boy for a free desktop).

Continuing on with my personal view, dual-licensing is the correct way to do things if you’re a business. On one hand, it protects the FOSS community because it is GPL; on the other hand it protects the business model by using the GPL to turn into free source of public relations material and it forces people who actually have money to buy up Qt licenses.

During this discussion, we figured out (within our own opinions, at least), what the most important aspects of the commercial half of the dual-license should be. For our example, lets say Company XYZ owns TheProduct, and Company ABC wants to buy TheProduct. Company ABC is building a closed-source application. Those important aspects go something like this:

1) ABC will have to be restricted from reselling TheProduct, otherwise XYZ doesn’t make money.

2a) ABC will have to be restricted from shipping modified version of TheProduct (seeing as they have the source, they could do this, we just have to license them into a corner so they don’t); restricting them from that prevents them from shipping a botched version of the library, which reflects badly on XYZ. It also prevents ABC from shooting themselves in the foot, which makes them happy, and turns them into a repeat customer.

2b) ABC will be allowed to ship a modified version if they release modifications under the GPL and revert ownership of said changes to XYZ, but also clearly mark said changes to have originated from ABC and not XYZ. XYZ reserves the right to merge said changes, but also reserves the right to not merge said changes.

3) XYZ will provide cryptographically signed binaries of the libraries to ship with the product. Failure to ship product with said binaries is considered a breach of the license. In the event of 2b, XYZ will build and sign new binaries on request.

4) Its probably a good idea to charge ABC by the number of shipped copies.

Now, the reason number 4 is so important is because it prevents large companies (such as Microsoft) from abusing the spirit of the dual-licensing scheme. The more money they stand to make, the more money we stand to make, simple as that.

Lets say Microsoft gets their foot in the door with the FOSS community by releasing Microsoft Word on the Linux desktop. And in this warped reality, they sell millions of copies. That is millions of licenses we’ve sold in addition to Word on Windows and Word on OSX (because TheProduct, as you probably have noticed, is really just a thinly veiled stand-in for Qt). TheProduct would not only be raking in the money, but thanks to Microsoft, it would be used by millions on multiple platforms. Instant inroad for cash into the FOSS community.

Microsoft could, in turn, make a whole desktop out of Qt-based components just from this one application. Your first instinct tells you that this couldn’t happen, but as Bobby Rockers said, “Why not, GNOME made a whole desktop based on an image manipulation program.”

Written by
Open Source software architect and technologist. He's just this guy, you know? Follow him him on Google+.
Published in
Transmissions from the Little Blue Marble

Published April 25th, 2005

Comments

One Response

Your post pretty well covers the reasons for the success of dual licenses in the free software world. Sun dual licenses Star/Open Office, AOL dual licenses Netscape/Mozilla, etc.. The result is that commercial companies get a revenue stream without having to compete against their own product (via a BSD style license.) In addition they have the added benefit of incorporating outside development (which are generally unpaid), a solid channel for feedback (and even improvements), and expanded adoption of their product line.

The other practical benefit to GPL’ed software is the amount of code duplication that is minimized. It is a common mis-conception that free software is more likely to fork, but the reality of the situation is that when GPL’ed software forks almost all development quickly follows the better development tract. Thereby code forks when its actually BEST for it to fork and then quickly re-combines. What does happen is that you get more code reuse. This is the basic argument that Novell used when porting their Netware environment to Linux. They decided it made no sense to invest huge sums of money in operating system development when a free option existed that they could use, extend, and reap any future benefits from. They could do more with fewer developers because they were not competing on the OS level, but on the services they offered on the OS.

Leave a Reply