Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 1

Qt-interest Archive, March 2008
Re: Qt Linux - building a completely static app?


Message 1 in thread

On fredag den 29. Februar 2008, sebastien_fricker@xxxxxxxx wrote:
> I'm not sure if building Qt statically is allowed for non-GPL
> applications: as I know, if an application uses LGPL libraries, it is
> only allowed to build it statically if this application is GPL.
>
> So, if Qt is uses LGPL library it should not be allowed for non
> open source application to provide statically build applications.

The GPL and LGPL has exceptions for system level libraries. These are designed 
for this purpose, when the (L)GPL code is a system library (which libc 
definitely is), and for the opposite case, where you link GPL code to a 
non-free system library (standard example: all GPL code on Windows linking to 
the MS libc).

It would be impossible to allow non-GPL code on a system like Linux or GPL 
code on non-Linux (or others where lowlever code is GPL) systems without 
these two exceptions.

Bo.

-- 
 [ signature omitted ] 

Message 2 in thread

Bo Thorsen <bo@xxxxxxxxxxxxxxxxxxxxx> wrote:
> On fredag den 29. Februar 2008, sebastien_fricker@xxxxxxxx wrote:
>> I'm not sure if building Qt statically is allowed for non-GPL
>> applications: as I know, if an application uses LGPL libraries, it is
>> only allowed to build it statically if this application is GPL.
>>
>> So, if Qt is uses LGPL library it should not be allowed for non
>> open source application to provide statically build applications.
> 
> The GPL and LGPL has exceptions for system level libraries. These are designed 
> for this purpose, when the (L)GPL code is a system library (which libc 
> definitely is), and for the opposite case, where you link GPL code to a 
> non-free system library (standard example: all GPL code on Windows linking to 
> the MS libc).
This is not the use case: in this situation, a program uses a LGPL
  library. The exception is for building GPL code which uses non-GPL
  library.
  LGPL say: if you are not LGPL you -must- link dynamically this DLL.
  This is the point 6b) of LGPL library:

  6. As an exception to the Sections above, you may also combine or link a
  "work that uses the Library" with the Library to produce a work
  containing portions of the Library, and distribute that work under terms
  of your choice, provided that the terms permit modification of the work
  for the customer's own use and reverse engineering for debugging such
  modifications.
  .....
  b) Use a suitable shared library mechanism for linking with the Library.
  ....

  So, if I understand this correctly, if Qt uses a shared library under
  LGPL license, then you can only sell an application under other license
  term if you link the Qt library dynamically which the corresponding LGPL libraries.
  So a pure static build is not allowed.

> 
> It would be impossible to allow non-GPL code on a system like Linux or GPL 
> code on non-Linux (or others where lowlever code is GPL) systems without 
> these two exceptions.
> 
> Bo.
> 

--
 [ signature omitted ] 

Message 3 in thread

You should check this out and see what could be done with this stuff.

http://statifier.sourceforge.net/


Benjamin.


On Sat, Mar 1, 2008 at 6:21 AM,  <sebastien_fricker@xxxxxxxx> wrote:
> Bo Thorsen <bo@xxxxxxxxxxxxxxxxxxxxx> wrote:
>  > On fredag den 29. Februar 2008, sebastien_fricker@xxxxxxxx wrote:
>  >> I'm not sure if building Qt statically is allowed for non-GPL
>  >> applications: as I know, if an application uses LGPL libraries, it is
>  >> only allowed to build it statically if this application is GPL.
>  >>
>  >> So, if Qt is uses LGPL library it should not be allowed for non
>  >> open source application to provide statically build applications.
>  >
>  > The GPL and LGPL has exceptions for system level libraries. These are designed
>  > for this purpose, when the (L)GPL code is a system library (which libc
>  > definitely is), and for the opposite case, where you link GPL code to a
>  > non-free system library (standard example: all GPL code on Windows linking to
>  > the MS libc).
>  This is not the use case: in this situation, a program uses a LGPL
>   library. The exception is for building GPL code which uses non-GPL
>   library.
>   LGPL say: if you are not LGPL you -must- link dynamically this DLL.
>   This is the point 6b) of LGPL library:
>
>   6. As an exception to the Sections above, you may also combine or link a
>   "work that uses the Library" with the Library to produce a work
>   containing portions of the Library, and distribute that work under terms
>   of your choice, provided that the terms permit modification of the work
>   for the customer's own use and reverse engineering for debugging such
>   modifications.
>   .....
>   b) Use a suitable shared library mechanism for linking with the Library.
>   ....
>
>   So, if I understand this correctly, if Qt uses a shared library under
>   LGPL license, then you can only sell an application under other license
>   term if you link the Qt library dynamically which the corresponding LGPL libraries.
>   So a pure static build is not allowed.
>
>
>  >
>  > It would be impossible to allow non-GPL code on a system like Linux or GPL
>  > code on non-Linux (or others where lowlever code is GPL) systems without
>  > these two exceptions.
>  >
>  > Bo.
>  >
>
>  --
>
>
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with "unsubscribe" in the subject or the body.
>  List archive and information: http://lists.trolltech.com/qt-interest/
>
>

--
 [ signature omitted ] 

Message 4 in thread

On 3/1/08, sebastien_fricker@xxxxxxxx <sebastien_fricker@xxxxxxxx> wrote:
> Bo Thorsen <bo@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> This is not the use case: in this situation, a program uses a LGPL
>   library. The exception is for building GPL code which uses non-GPL
>   library.
>   LGPL say: if you are not LGPL you -must- link dynamically this DLL.
>   This is the point 6b) of LGPL library:
>
>   6. As an exception to the Sections above, you may also combine or link a
>   "work that uses the Library" with the Library to produce a work
>   containing portions of the Library, and distribute that work under terms
>   of your choice, provided that the terms permit modification of the work
>   for the customer's own use and reverse engineering for debugging such
>   modifications.
>   .....
>   b) Use a suitable shared library mechanism for linking with the Library.
>   ....

... and what about 6 a):
"a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked with
the Library, with the complete machine-readable "work that uses the
Library", as object code and/or source code, so that the user can
modify the Library and then relink to produce a modified executable
containing the modified Library."

Or:

http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
"Essentially, it must be possible for the software to be linked with a
newer version of the LGPL-covered program. The most commonly used
method for doing so is to use "a suitable shared library mechanism for
linking". Alternatively, a statically linked library is allowed if
either source code or linkable object files are provided."

--
 [ signature omitted ]