Clever Licensing Hack

Trolltech have recently dual-licensed QT for Windows under the GPL (as reported by scc). Previously, only the non-Windows versions were available under the GPL. Reading their FAQ on the subject, I did notice a clever licensing hack.

Q: I want to dual license my software too! That means I can use the Open Source edition for development, right?

A: No. In order to write software that will be sold or licensed commercially, in addition to open source, all of your programmers will need a commercial license from the outset of the development phase.

But how can this be? The GPL allows you to use software you’ve obtained under it in any way you choose. “The act of running the Program is not restricted.” How can Trolltech prevent you from developing your app against the GPL edition, and only buying a commercial licence when and if you want to release it?

Here’s the trick:

If you use the Open Source edition of Qt, you can only publish the software under the GPL. Trolltech’s commercial license terms do not allow you to develop any proprietary software using the Open Source edition.

The commercial licence terms presumably say something like “you can’t use this license to distribute code you originally developed against the GPL edition”. So they use the commercial licence terms to restrict the use of the GPLed version. Clever. And legal.

7 thoughts on “Clever Licensing Hack

  1. fralos: the GPL only restricts distribution. So, I can write a proprietary program and link with GPLed libraries as long as I keep it to myself. If I later want to distribute that program, it’s true that I need a different proprietary-friendly licence for those libraries. If I never distribute it, I don’t need the different licence.

    However, Trolltech don’t want me to work like that. They want me to develop against the proprietary-friendly versions of the libraries from the start of my development – even when I’m keeping the program to myself. This is probably because a lot of programs designed for distribution never get distributed, and so they would get less money if they allowed people to get a proprietary-friendly licence at the end of the process.

    So they change the proprietary terms to say that if I’ve done what I said in the first paragraph, I can’t have a proprietary-friendly licence for that code, ever. This makes me buy a proprietary-friendly licence up front if there’s even a possibility of proprietary distribution. That’s the hack.

  2. I think there’s a number of reasons for TrollTech’s licensing. IIRC, they charge a yearly fee, so they want you paying from the moment you “-lqt”. Another is that it is per-developer. You may develop a program, lay off/hire a bunch of people during the process and then have a completely different number of developers at the end of development than the beginning.

    Personally, I don’t like TrollTech’s Qt licensing for the reason that you can’t take a previously GPL project proprietary, but I can understand why they do it. To be honest, I imagine TrollTech would be happy to work something out with you if you back-pay for development time. Don’t quote me on that, though :)

  3. Interesting case, but i suspect they are right. GPL regulates the use of the free code. The commercial one albeit possibly identical it’s a different domain, like a separate application.
    It’s a trick indeed anyway.


  4. True, but that’s the bonus of making the effort to write your own code. Personally, I don’t believe that “once free, always free” should be forced on people.