[Qt-interest] Licensing

Steven Doerfler sgd-qt at lugaru.com
Sun May 30 20:46:36 CEST 2010


On 5/30/2010 5:26 AM, JJDaNiMoTh wrote:
> Abstract:
> I develop an "hello world" example using QtGui and QtCore.
> Now, I release my sources + the compiled program in my ftp server.
>
> Are you sure my "hello world" is a Qt object code?
> It's my object code, which is linking to Qt object code.
>   

Your "hello world" source code would be a "work that uses the library",
and not subject to LGPL (as the LGPL says, section 5, paragraph 1).  You
can freely distribute it.

Your object file might or might not be a derivative work of the library,
since it uses some Qt headers.  But, again, you can freely distribute
it, because a "hello world" program is so simple it won't include any
long inline functions or big macros, and the LGPL gives you permission
to do what you like with such object files, whether or not they're
legally derivative works.  (This might not be the case for more
complicated programs that use long inline functions, but we're only
discussing "hello world".)

Your executable file might be statically linked or dynamically linked. 
If the former, then there's no question that it includes lots of Qt
code, so the result is a derived work of Qt, and you have to follow
section 6 of the LGPL.  Since you're not following 6b, you have to
comply with either 6a, 6c, 6d, or 6e.

If the latter, and you only distribute your dynamically linked
executable, but never the Qt shared libraries it depends upon, then
Constantin Makshin sees some ambiguity, though I don't.

If I'm right, you have to "give prominent notice with each copy of the
work" that you used Qt, tell people that Qt is covered by LGPL, include
a copy of the LGPL license, and include the copyright notice for Qt
along with your own.  Since you're following rule 6b of the LGPL, you
don't have to comply with sections 6a, 6c, 6d, or 6e (so no need to
offer Qt source code, as long as you're not distributing Qt shared
libraries).

If he's right, and there's an ambiguity, then (perhaps) your executable
may be completely free of restrictions, and you can do anything you like
with it.  No need to tell people you used Qt, credit Nokia, tell people
about their rights, or anything.

One further case: You build a dynamically linked executable, and you
want to distribute that along with the Qt shared libraries it depends upon.

Distributing Qt alone is controlled by section 4.  If you distribute the
Qt shared libraries on a CD/DVD, you must include Qt source code too. 
If you let people download Qt shared libraries from your site, your site
must offer Qt source code too.

Distributing your dynamically linked executable along with the Qt shared
libraries it depends upon is controlled by section 6.  Since your
executable is dynamically linked, you're already following section 6b,
so you just have to say that you used Qt, include its copyright notice
and a copy of its license, and the various other things required at the
top of section 6.  You don't have to offer Qt source code in this case.

Steven




More information about the Qt-interest-old mailing list