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