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 ]