[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [GPL] No linking with proprietary programs: where?



On Tue, Mar 14, 2000 at 01:32:21PM +0100, Stephane Bortzmeyer wrote:
> We all know that the GPL prevents linking with proprietary stuff (see the 
> KDE/Qt thread). And we all take this for granted.
> 
> Looking for the precised wording, I was very surprised to be unable to find 
> it. Where in the GPL is such restriction written? I just find this line at the 
> end, in "How to Apply These Terms to Your New Programs" where I wouldn't have 
> search:
> 
> This General Public License does not permit incorporating your program into 
> proprietary programs. [Where is it written? S. B.]  If your program is a 
> subroutine library, you may consider it more useful to permit linking 
> proprietary applications with the library. If this is what you want to do, use 
> the GNU Library General Public License instead of this License.

Read clause 2 of the GPL:

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
[...]
These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
                                                          ^^^^^^^^
distribute the same sections as part of a whole which is a work based
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
on the Program, the distribution of the whole must be on the terms of
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this License, whose permissions for other licensees extend to the
^^^^^^^^^^^^
entire whole, and thus to each and every part regardless of who wrote it.
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Strictly speaking, the GPL does not permit incorporating "your program"
into a GPL-incompatible program -- not just proprietary stuff.  (As RMS has
noted, there are free licenses that are GPL-incompatible; the QPL is
currently recognized as one).

You'll note that clause 2 speaks of modification, not original authorship.
One interpretation of this clause is that writing an app from scratch that
uses a GPL'ed library creates a derivative work of that library (even
though the app itself may be wholly original).  But we don't even need to
assert that sometimes controversial claim to understand why Debian, or any
third party, has a problem distributing software such as
Qt-version-2-linked-apps...

The author of a program can write it against whatever library he pleases.
(I suppose it's technically possible for there to exist a library that is
not so licensed, but that case is not applicable here.  No free software
license can place such a restriction and still be called "free".) It's what
happens after the program is distributed that counts.  Once this program --
which, say, is GPL'ed and linked ONLY against QPL'ed and LGPL'ed libraries
-- leaves the application author and finds its way into other hands, the
recipients of the program lose their rights to modify the program under
clause 2.  If they change it -- whether in source or binary form is
irrelevant, since modifications generally count as "derivative works" --
they are unable to comply with the terms of clause 2.  Why?  While the
author does not need permission to link his original application against
GPL-incompatibile libraries and use it (the GPL places no restrictions on
usage, and cannot affect his rights as an author of an original work),
everyone else in the world does.

The end result is that such software -- once it leaves the author's hands
-- fails clause 3 of the DFSG:

  3. Derived Works

     The license must allow modifications and derived works, and must allow
     them to be distributed under the same terms as the license of the
     original software.

Not only that, but we *CAN'T* legally distribute such software under the
GPL, which we MUST do if any part of it is GPL'ed (see clause 5):

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
distribute the Program or its derivative works.  These actions are
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
prohibited by law if you do not accept this License.  Therefore, by
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

-- 
G. Branden Robinson            |    Software engineering: that part of
Debian GNU/Linux               |    computer science which is too difficult
branden@ecn.purdue.edu         |    for the computer scientist.
roger.ecn.purdue.edu/~branden/ |

Attachment: pgpnrcxIHtOg6.pgp
Description: PGP signature


Reply to: