tags:

views:

123

answers:

4

I am interested in creating closed source applications for my Nokia N900 using Qt Creator and the LGPL License, but I'm unfamiliar with how exactly I'm able to do this. I understand that I should use dynamic links vs static links when creating my application, but I'm not certain how this is done when using Qt Creator. I'm under the impression that when it builds the executable, everything is statically linked to my executable. Am I wrong? If not, how do I change the linking method?

I'm not horribly familiar with software development for Linux platforms with the intent to distribute, but I'm not intending to use any GPL/LGPL packages other than Qt for my GUI, and the API for the phone itself. I'm an independent developer, so I don't have access to an IP Lawyer or the funding required to purchase a commercial license, so I'd rather take what steps I can to ensure I do things correctly.

+1  A: 

Use ldd to find out whether your application is dynamically linked. Run

ldd <binary>

and see if the Qt libraries are listed. If they are, they are linked dynamically.

Post your project file such that we can see if it is correct for dynamic building or where to change.

You don't need a lawyer in your situation as described. Just make sure that your distribution (binary) does not contain any alien code, e.g. Qt code (as you said: no static linking) and everything's fine.

ypnos
Using ldd <binary>, I do see libQtGui.so.4 and libQtCore.so.4 in the output. In the project file and the pro.user file, I don't see anything that appears to address the linking, but looking into how GCC links a little more, it appears that by default it will attempt a dynamic link unless the -static flag is passed. I dug into the Makefile and do not see the -static flag being passed. So it seems to me that if I just verify all my binaries using ldd and verifying the Makefile before any distribution, I should be okay.Thanks muchly.
Vin King
A: 

Your best bet is going to be to e-mail support with your intentions, cc'ng legal, and ask the question. I can tell you that in Canada currently, statically linking a library into a program does not constitute being a derivative work of that library, and therefore the viral qualities of the LGPL wrt static linking, cannot apply. This is information I have got from my own IP lawyer at times in the past. However, this may vary from jurisdiction to jurisdiction. It's best to just contact the copyright holders and explain your situation and see if that is in line with their intentions.

jer
This is a good idea. I'll contact Nokia to see if they have any best practices guidelines for ensuring I don't violate their licenses.
Vin King
A: 

Qt: Making the right licensing decision

Nokia have a new combined SDK which is supposed to make developing on their supported handsets easier. There is also an article on the N900 handsets

Remember the LGPL only means you need to share the source for any changes you make to Qt itself, your app can remain propriety.

Martin Beckett
A: 

If you just download the Qt SDK (or if you're targetting N900, I'd recommend Nokia Qt SDK as it comes with lot of tools that help developing on mobile devices), it comes with dynamically prebuilt libraries.

So by default you're application will be linked dynamically to the Qt libraries, and the LGPL licence regulations are met. Should you make changes to the Qt source code, you would then have to provide the changed source files.

PR 1.2 version of N900 has Qt 4.6.2 preinstalled, so you don't have to worry about installing Qt on the device, it's already there.

sdb
Fantastic. I am indeed using the Nokia Qt SDK for development, but it doesn't come out and say it this clean or clear. Thabks so much for this info.
Vin King