Hi!

I've used Qt off and on with Commercial licenses for about five years now, and recently a situation at my company has caused me to ask questions about the Qt licensing agreement that I cannot get a straight answer to. I have read the Qt license agreement(s) (they've evolved in the last five years) and there seems to be no straight answer to my questions.

The current commercial Qt licensing agreement states that I must have the license assigned to a specific, named developer. It also states that - should the developer leave the company or the project - the license can be transferred to another developer, but only once every six months. Perhaps my experience in the software development world is unique, but I have worked in places and projects where developers come and go more often than six months. In addition, the release engineering group at my company has a bevy of engineers, any one of whom should be able to do a full build - using a Qt license to produce the product - at a moment's notice. And then, I also work at a company where we wish to be able to build - and as a result, we buy licenses for - multiple platforms.

The questions I have are these:

1. Does Release Engineering need to buy one license for each platform for each release engineer who might be called upon to build the product? This seems not rather well thought out. If the release engineer "named" in the Qt license is on vacation for two weeks, technically, my company cannot ship the product until the engineer returns. Does that make sense to anyone here?

2. Generally speaking, I've noticed that there are very few software developers who are equally skilled in Windows, Macintosh, and Linux development . If my company buys a 3-OS Qt license, does that mean that all the builds for Linux have to be done by someone who only cares about Windows? Does my company have to buy three separate licenses - one for the Mac genius, one for the Linux guru, and one for the Windows whiz?

3. I have purchased, independent of Trolltech, five (5) books on Qt development over the last five years. Each one is chock-full of Qt programming examples. Even without a Qt license (I do not own a commercial Qt license, nor do I have the open-source version of Qt), I believe I have the right to express myself, and that this right includes entering text I read from a book into a text file. Am I in violation of any Qt licensing agreement if I do so at my company, where my company has bought a Qt license but has not named me as the "named" developer?

4. Hypothetical situation: I am the Qt license-holder for a 3-OS Qt commercial license that my company has purchased. I am a Windows developer and develop - using the Qt framework - a Windows application. One of my colleagues is a Macintosh developer. The Mac developer is not the named developer on the Qt license - this implies that they cannot build on their Macintosh the Mac version of the Qt application I developed. However, since the Qt licensing agreement cannot dictate who uses the hardware, I can login to the Macintosh, build the Mac Qt application, and then let the Mac developer test/debug it. Is my company now in violation of the Qt license agreement? Or does the Mac developer have to drag me into their development cycle every time they need a new Mac build? Or do I have to buy a Linux box and a Mac box just to do builds? (please spare me any jokes about VMWare...) Do I then become the Builder for my group? Technically - as a result of the Qt license - I am authorized to build for Windows, Mac, and Linux, and am legally permitted to release my built application and all of its attendant development data files (sources, debug files, etc.) at my discretion (it's a commercial license, so I don't have to give source code away outside the company, but inside it's okay) to the developers in my group. Effectively, I become the Builder. Is this a violation of the Qt commercial license?

5. Extending the hypothetical situation: my 3-OS Qt license allows me to install the Qt framework and tools onto, at the very least, three different machines (let's assume I don't want to virtualize any of them, because that's scary). If I set up scripts and processes such that, from a network connection, I can (a) log me in, (b) run a build, and (c) return the build products to a network-accessible location, am I in violation of the Qt license agreement? From the computer-user-tracking point of view, there is no way to tell that I am a person who is actually "logged-in" (the computer doesn't know I'm not sitting at the keyboard). How would Qt enforce this? All the records that they can subpoena would show that - on multiple occasions - I had logged in to the build machine and performed a build, just like the Qt license agreement allows me to do.

Any assistance with these deeply philosophical issues is welcome. Especially from Nokia's lawyers.

rtb