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

Please do not use Qt



Martin Konold writes:
> Qt comes with source. Any gpled sw can be distributed with soure or
> binary of Qt.

No, I believe you are wrong (or at least, that the issue is _much_
more complicated than you suggest).  The GPL requires:

 2. [ source code distribution and modification ]
 ...
     b) You must cause any work that you distribute or publish, that in
     whole or in part contains or is derived from the Program or any
     part thereof, to be licensed as a whole at no charge to all third
     parties under the terms of this License.

 3. [ binary distribution and modification ]
 ... under the terms of Sections 1 and 2 above
 ... and also
     a) Accompany it with the complete corresponding machine-readable
     source code, which must be distributed under the terms of Sections
     1 and 2 above on a medium customarily used for software interchange; or,

 The source code for a work means the preferred form of the work for
 making modifications to it.  For an executable work, complete source
 code means all the source code for all modules it contains, plus any
 associated interface definition files, plus the scripts used to
 control compilation and installation of the executable.  However, as a
 special exception, the source code distributed need not include
 anything that is normally distributed (in either source or binary
 form) with the major components (compiler, kernel, and so on) of the
 operating system on which the executable runs, unless that component
 itself accompanies the executable.

This definitely means that you can't distribute a statically linked
binary containing both GPL'd code and Qt, because the complete source
code to Qt (strictly, the parts that had been linked into your binary)
would have to be distributed under the GPL (which would be a violation
of the Qt licence).

Whether or not you can distribute a dynamically linked binary depends
on the meaning of `executable work'.  If in the case of dynamic
linking the `executable work' is only the dynamically linked
executable then you can distribute it (if as seems reasonable a
dynamically linked binary is taken not to `contain' the libraries its
linked against, but merely to refer to them).

If `executable work' applies only to the ensemble of a dynamically
linked binary and the libraries required to run it (which is the
position I'd take, because a dynamically linked binary isn't
executable on its own) then the paragraph defining the meaning of
complete source code for an executable work doesn't apply to the
distribution of just a dynamically linked executable.

In this case we have to decide for ourselves what the `complete source
code' for the executable is, and to my mind that would include the
source code for any libraries it was linked against.  This
interpretation is supported by the fact that the GPL has a special
exception for operating system libraries, as you see above.

Thus, according to my interpretation of the GPL you can't distribute
dynamically linked binaries of GPL'd code linked against Qt.

However, even if you disagree with my interpretation and thus think
that distributing dynamically-linked binaries is OK, further under
section 2 we see:

 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.

 Thus, it is not the intent of this section to claim rights or contest
 your rights to work written entirely by you; rather, the intent is to
 exercise the right to control the distribution of derivative or
 collective works based on the Program.

 In addition, mere aggregation of another work not based on the Program
 with the Program (or with a work based on the Program) on a volume of
 a storage or distribution medium does not bring the other work under
 the scope of this License.

Thus if you distribute as a single program GPL'd code which uses Qt
together with Qt itself you are in clear breach of the GPL even if you
distribute only the source code.  Exactly whether something is a
`whole work' or `mere aggregation' is often unclear.

Furthermore, in the Qt licence we see the requirement:

     * Your software does not require modifications to Qt.

... and ...

   If you are paid to develop something with Qt or it is a part of your
   job the following conditions also apply:                              
     * Your software must not require libraries, programs, data or
       documentation that are not available outside your organization in
       order to compile or use.                                       
     * If and when your organization starts using the software, you must
       notify Troll Tech AS of the following:         
          + Your organization's name and purpose.
          + The software's name and purpose.
          + The software's license.
          + That your organization considers the software to be free
            software.

While these conditions could be complied with by someone who wanted to
distribute GPL'd Qt-dependent code they are annoying for developers of
programs which depend on Qt.

So, in summary, I believe that GPL'd code dependent on Qt has the
following properties:
 (a) Everyone may distribute the source code to the GPL'd parts only.
 (b) Distribution of dynamically linked binaries may or may not be OK,
     depending on the meaning of some words and phrases in the GPL.
 (c) Distribution of statically linked binaries is definitely not OK.
 (d) Distribution of the source code to the GPL'd parts together with
     the source code to Qt when done as a `whole work' (whatever that
     means) is not OK.
 (e) Developers aren't allowed to modify Qt, and if they are paid have
     to notify Qt of their use.

I think that these restrictions are too onerous for most practical
projects.

Furthermore, if anyone distributes GPL'd code whose copyright I own or
have a share in dynamically linked against Qt I will attempt to
enforce my own interpretation that this is not legal, through the
courts if necessary.

Thanks,
Ian.

--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-user-REQUEST@lists.debian.org . Trouble? e-mail to Bruce@Pixar.com


Reply to: