Dynamic Linking and the GPL

The message below was originally posted to slashdot.org on 27-May-1998, in reply to an editorial by Kevin Forge about KDE and the Qt licenses.

Note that the specific controversy over the licensing of Qt was resolved on 4-Sep-2000 when Trolltech released the free edition of Qt/Unix 2.2 under a dual license, QPL or GPL. More recently, Trolltech has released Qt/Embedded under the dual license, and Qt/Mac under the GPL.

However, the general issue of how the GPL applies (or doesn't) to dynamic linking is still a concern. For instance, can non-GPL software such as PHP use the GPL'd MySQL client library via dynamic linking?

Kevin Forge wrote:

1. What is wrong with the KDE License ? Nothing. It is GPL and according to the rules of the GPL can be enforced on distributions that ship QT as part of the package ( All distributions that ship KDE ship QT and even debian includes QT as an optional install )

I don't understand what you're saying. If you mean that a distribution containing one GPL'd package can't contain any non-GPL'd code, and that any other code in the distribution automatically becomes GPL'd (the "contamination" theory), you're wrong. This is specifically explained in section 2 of the GPL.

If you mean that a distribution is shipping KDE statically linked with Qt, and that the GPL'd KDE code therefore makes Qt GPL'd, you're still wrong. What the GPL says is that if you make a derived work that incorporates components that are not GPL'd, you can't distribute the derived work. At all. It doesn't (and legally can't) force the GPL onto someone else's code. In this case the packager of the distribution can be forced to cease distributing the statically linked package.

If you mean that a distribution is shipping KDE and Qt such that they get dynamically linked at runtime, then we get into a grey area. Stallman says that dynamic linking isn't any different than static linking for the purpose of the GPL. That may be true, but an important issue is who does the linking. The link (static or dynamic) produces a derived work. But if the dynamic linking is done by the end user, he or she has the right to produce the derived work, even containing non-GPL'd code, provided that he or she does not distribute the derived work.

Stallman may not like this interpretation, but I think you'd be hard-pressed to find anyone who believes that the dynamic linking was done by the producer of the distribution.

Last updated December 2, 2004

Copyright 1998, 2004 Eric Smith

Best Viewed With Any Browser Valid HTML 4.01!

check now