The King is dead. Long live the King !

This post will be about Qt. If you are the fan of Trolltech's products or the company itself as much as I was, you will likely be astonished if you have not been yet. Today, Jan 14, the company announced they would license Qt under LGPL. Everywhere including Windows. Read the announcement here.

Qt Software (new name of Trolltech, much lacking its previous brightness, imho) management states this was a logical move after multiple years of practicing a dual model (GPL & commercial) and that it will boost further Qt proliferation. I'm shocked and excited at the same time, and this seems to be a common reaction based among the comments flooding the announcement.

My first shout the second I heard this from a colleague was "they went crazy, this will suck up their revenue". (If you are not familiar with GPL and LGPL, let me describe it in a couple of words. GPL forces you to disclose your source code, while LGPL – not, if you are using it correctly. That's why Trolls were successful in their dual model – their commercial customers preferred to buy expensive licenses, while Open Source community was supportive of GPL. I touched licensing issues in one of my previous posts).

I immediately jumped to their web-site, watched the video and read the FAQ, and then went to their blog where their VP announced it. While I was typing their url in Firefox, I kept on thinking "how will they earn their money now, home come ?". A guess popped up very quickly – Nokia (I hope you know that Nokia acquired Trolltech last year). With such a Sugar Daddy behind you, you can afford such things. Yep, that seems to be it – the video confirmed that (citation). So, is revenue no longer a concern ? Quite possibly, and Nokia rather puts a stake on Qt's farther penetration. The company intends to reinforce Open Source community's contribution by simplifying some contribution processes and introducing new web tools. Let's see if that works.

More gloomy thoughts on this. Perhaps this all makes sense for Nokia, I don't know. I am still puzzled with a business sense for it to have acquired Trolltech for amazing $153M. Neither the business strategy, nor the price did not sound reasonable for me. Have anyone clearly understood the logic supporting this deal ? I'd be interested to hear your comments. If you read Trolltech's financial statements for 2 last years (after they went public on Oslo stock exchange in 2006), you might have noticed they never reported positive net income for the period of being a public company. Why buy such a company if you can't convert it into a cash generator ? What also concerns me is lack of understanding of a long-term strategy of Nokia with respect to Qt and the company. If they give up an idea of earning money with it, what can be the next step ? Can it be that they say, OK, Qt is now fully free (as in beer and in speech), you, the Community, go and maintain it ? Here are the better procedures and tools for that. And we, at Nokia, will assign brilliant Troll developers to internal projects. Possible ? Or, after a few years when Qt is everywhere, they could say, well, that loose license model we announced in 2009 undermines our revenue too much and we have to revisit it, we are now back to the old model (GPL & commercial). Free drug trick. I hope Nokia is not (that) evil, and it has a plan. Maybe I'm too paranoid but when such sound moves happen I try to understand where a real point is. I don't see it now :-(. If you do please share, that would be really interesting.

Now back to the ground. What does today's announcement mean for us ? If you are a small or a mid-size company then I suggest that you consider transition to the LGPL licensed edition (at least I would do this). This can save you several thousands or dozens of thousands dollars a year. To stay compliant you must dynamically link with the LGPL'ed Qt library and must not strip your binaries or otherwise prevent reverse-engineering.

I myself also hope to benefit from this Troll's decision. Currently I am resurrecting own previously developed toolkit – QOLib – Qt/Open CASCADE Library – I used to develop some tools about 6 years ago with Qt3. With the LGPL'ed edition there are no more concerns that previously forced me to cautiously package the toolkit in order not to breach the former license. In this sense, I cannot but welcome today's decision. No more viral threat, Qt the Great remains.

The King is dead. Long live the King !

P.S. Typing this post using a laptop while sitting in my car at a service station waiting to change oil in the car (previous one did not let the engine start at -15C). Will upload when back home.


  1. Interesting post Roman!
    I'm very curious about QOLib...

  2. I found about this news last night when checking www.kde.org. However, I'm not really aware of the implications of LGPL to full extent. As far as I know, it allows you to create executable code, which is closed source, as long as you link against the LGPL library dynamically. It would also mean that you can charge for your software without having to pay anything to Nokia (in the case of Qt). You say that for the binary you release it must be possible to do reverse-engineering. What's the purpose? Having a way to check you are not including code that you shouldn't into it?

    Do you know of any other implications of using LGPL'd libraries?

  3. Can you explain stripping binary and not-preventing reverse-engineering?

  4. 2 Ceniza:
    Yes, this is correct understanding. You may dynamically link your own created software to LGPL'ed library and license your software under a license of your choice. Thus, you have full rights not to disclose the source code and charge a fee. There is an interesting roadblock with LGPL 2.1 regarding C++ templates and inlines which contaminates user's code thus making it subject to LGPL. Trolls acknowledged this issue and stated they would provide an explicit exception clause fully permitting commercial code to use LGPL'ed Qt.

    2 Ceniza and Stefan:
    LGPL implies certain requirements including one to not prevent reverse engineering. Stripping binaries prevent it and thus is forbidden (but I did not see practical use of stripping binaries in a broad use). See section 6 of LGPL 2.1: ...you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

  5. I think we're again at a place where a lawyer's opinion would be appreciated... but anyway, here is mine.

    I guess the situation with LGPL'd libraries is pretty similar to the one with LGPL'd icons. If you include those in your application you have to give the user the possibility to change/replace them. This is at least how I interpret the LGPL terms based on a number of web articles. The same condition has to be fulfilled if you ship LGPL'd dlls. You have to include the code of those and let the user modify them or use his own version of the libraries with your application. You don't have to provide the source of your app (this actually prevents debugging/reverse engineering too, right?) if I get the LGPL license right. Why would you have to provide the debug symbols? You just have to allow the debugging to the end user (learning the assembly language is up to him).

  6. You ask why Nokia would make this change. Why do large companies give money to charity?

    I think Nokia might see this as doing something good, building goodwill maybe. Also, if it attracts developers and/or improvements, it makes it easier to write cross-platform apps. That might hurt Microsoft, and I doubt Nokia is fond of M$.

  7. 2 Pawel.
    The most important thing is that Qt Software (=Trolltech) emphasizes the spirit of their move - yes, they permit use LGPL'ed Qt in closed source apps.
    Regarding reverse engineering/stripping, I think this only relates to binaries of the LGPL'ed library itself, not to your own code. At least this is how I interpret it. And this sounds logical - as long as you provide dynamically linked library (Qt) and its sources (or refer where to download them), the users should be able to compile on their own and debug your version of the library to make sure there are no modifications that you could make and do not wish to disclose (what would be LGPL violation). Maybe my initial wording sounded as if you shouldn't prevent your *own* code reverse engineering. Meanwhile I consulted our training classes materials but they were not verbose on that matter. If there's a chance I'll talk to our legal.

  8. Mark, thanks for this perspective. Interesting.
    Though I don't think this was connected with charity (we both likely mean towards open source community, not to Eirik and Haavard, Trolltech co-founders, right ?;-))
    On positioning against Microsoft. Well, there can be some truth in it (but I think not because "Nokia is not fond of M$" - at this level many companies are both partners and competitors). My guess is more towards mobile market (where Nokia is a strong player). Since I don't know that segment well, this is more a speculation. Perhaps by controlling Qtopia (now named Qt Extended) they want to better compete with other offerings, such as Google Androids or iPhones, and maybe Windows Mobile ?