LGPL and GWT

104 views
Skip to first unread message

dra...@gmail.com

unread,
Feb 12, 2008, 2:27:44 PM2/12/08
to Google Web Toolkit
Since this resulted in a pretty lengthy conversation over on the
forums for MyGWT, I thought I'd post a link over to it in case anyone
is wondering what the ramifications of using LGPL licensed libraries
in GWT code is:

http://mygwt.net/forum/viewtopic.php?p=3358#3358

There is a post from a representative of the FSF on the matter towards
the end of the posting. And for clarification, es I'm the same
"drakmir" from the posting there. I didn't get permission from Brett
(from the FSF) to reproduce his email here, so that's why I'm linking
to the other conversation.

I don't want to discourage the use of LGPL with GWT. In fact, I love
what the FSF and the *GPL licenses have done for the community.
However, I do want to make sure people understand the ramifications
when using it so no one is caught off guard.

Enjoy!

dra...@gmail.com

unread,
Feb 12, 2008, 2:32:48 PM2/12/08
to Google Web Toolkit
To summarize:

LGPL software that is brought into your GWT based application and sent
to the client due to being translated into javascript by GWT requires
that the source of the library and application be available to any
user that uses the GWT module in their browser.

Please note that we aren't talking about LGPL code that is used only
by the server side components of your GWT application. Only the ones
that are translated into javascript and transmitted to the client to
run in the browser.

Please refer to the other thread for details of why this is true.

Peter Blazejewicz

unread,
Feb 13, 2008, 10:01:58 PM2/13/08
to Google Web Toolkit
hi,
I don't understand conclusion in relation to GWT output,
Following final statement - but in different scope - me as Flash/Flex
developer - I would have to post all .as (actionscript) source
files/.swc library file(s) together with compiled output .swf file
(transcoded results send to browser) for all people browsing that page
with flash compiled movie, so they can modify source and republish
according to LGPL???

regards,
Peter

kebab....@gmail.com

unread,
Feb 13, 2008, 11:44:54 PM2/13/08
to Google Web Toolkit
that would be the correct conclusion if your Flash-based Combined
Work/project used any libraries licensed under LGPL (Unless I think
the copyright owners of the corresponding libraries added any more
clarification in the licensing terms on the usage of their code).

On Feb 13, 10:01 pm, Peter Blazejewicz <peter.blazejew...@gmail.com>
wrote:

Axel Kittenberger

unread,
Feb 14, 2008, 7:37:45 AM2/14/08
to Google Web Toolkit
GPL as well LGPL do not require you to put the source along with the
compiled binary. However they require you to provide the user at least
one way to receive the source if he requests so. For example this can
be an email like "If you wanna the source ask here". Or a link, or
whatever. GPL requires you to offer the source of the whole project
while LGPL only requires you to offer the sources of the libraries you
modified. If you haven't modified the librariy a redirect on request
to the original public location you obtained it from suffices as well.

Other than that, I'm a bit confused on the link you gave, didn't see
what post is from the FSF. But at last its what the FSF says that
counts, they obviously understand the (L)GPL better than anyone
else :-)

On Feb 14, 5:44 am, "kebab.she...@gmail.com" <kebab.she...@gmail.com>
wrote:

dra...@gmail.com

unread,
Feb 14, 2008, 9:30:00 AM2/14/08
to Google Web Toolkit
To start with, I'm not a lawyer and I'm not a representative of the
FSF. The FSF response is in the thread I linked to, but it is on Page
1 of the thread. The link brings you to the latest posts in the
thread, so you have to get back to Page 1 to see the FSF's
response. :)

This is unfortunately a common misunderstanding of LGPL versus GPL.
What the LGPL does is allow to ship a binary distributable without
source as long as the user you distributed your code to has the
ability to modify the LGPL library (by downloading source and
rebuilding it) and use that modified library with your code. In order
to do this, you must either:

1) Ship enough tools/etc with your code (or have them be obtainable --
I have to look at the license to see how they must be distributed) so
that the user can recreate a running version of your code using the
now modified library.

2) Use a "shared library" concept so that the library is late bound
into your code and can therefore be changed by replacing the old
library with a new one. (Windows = DLL, *Nix = SO,etc. Java (JVM)
= .class files, etc.)

The confusion here is that in the JVM, everything is late bound.
Therefore any .class file you ship are replaceable by the end user and
the LGPL is satisfied by simply shipping your code. So the common
thought is that "I'm using Java, so I'm covered under the LGPL".
However, with GWT you are NOT using a JVM any longer. The code is NOT
late bound, and is rather compiled into another "binary" (in this case
JavaScript source) to be run in a machine that isn't doing late
binding. Since there is no shared library / late binding concept
available to the end user using your code, you must satisfy condition
#1 above instead.

For most languages and platforms, shipping pre-compiled objects (not
source) is enough to satisfy #1, as the user can rebuild the LGPL
library, and relink the code with the pre-compiled objects resulting
in a new version of the distributed application. With GWT, this is
impossible since the GWT requires the original java source in order to
do its magic. Therefore, to satisfy condition #1 above, you must
provide source to the end user for your entire application.

There was a question above about flash, and I think Kebab answered it
well.

kebab....@gmail.com

unread,
Feb 14, 2008, 8:22:39 PM2/14/08
to Google Web Toolkit
check this out - GWT-EXT's author replied with the clarification on
the LGPL license that he uses for his library

http://gwt-ext.com/forum/viewtopic.php?f=2&t=77
http://gwt-ext.com/license/

sheesh-kebab

unread,
Feb 29, 2008, 8:23:24 PM2/29/08
to Google Web Toolkit
and now Darrell posted a clarification on copiyright terms for mygwt
(http://mygwt.net/license)...

On Feb 14, 8:22 pm, "kebab.she...@gmail.com" <kebab.she...@gmail.com>
wrote:
> check this out - GWT-EXT's author replied with the clarification on
> theLGPLlicense that he uses for his library
>
> http://gwt-ext.com/forum/viewtopic.php?f=2&t=77http://gwt-ext.com/license/
>
> On Feb 14, 9:30 am, "drak...@gmail.com" <drak...@gmail.com> wrote:
>
>
>
> > To start with, I'm not a lawyer and I'm not a representative of the
> > FSF.  The FSF response is in the thread I linked to, but it is on Page
> > 1 of the thread.  The link brings you to the latest posts in the
> > thread, so you have to get back to Page 1 to see the FSF's
> > response.  :)
>
> > This is unfortunately a common misunderstanding ofLGPLversus GPL.
> > What theLGPLdoes is allow to ship a binary distributable without
> > source as long as the user you distributed your code to has the
> > ability to modify theLGPLlibrary (by downloading source and
> > rebuilding it) and use that modified library with your code.  In order
> > to do this, you must either:
>
> > 1) Ship enough tools/etc with your code (or have them be obtainable --
> > I have to look at the license to see how they must be distributed) so
> > that the user can recreate a running version of your code using the
> > now modified library.
>
> > 2) Use a "shared library" concept so that the library is late bound
> > into your code and can therefore be changed by replacing the old
> > library with a new one.  (Windows = DLL, *Nix = SO,etc. Java (JVM)
> > = .class files, etc.)
>
> > The confusion here is that in the JVM, everything is late bound.
> > Therefore any .class file you ship are replaceable by the end user and
> > theLGPLis satisfied by simply shipping your code.  So the common
> > thought is that "I'm using Java, so I'm covered under theLGPL".
> > However, with GWT you are NOT using a JVM any longer.  The code is NOT
> > late bound, and is rather compiled into another "binary" (in this case
> > JavaScript source) to be run in a machine that isn't doing late
> > binding.  Since there is no shared library / late binding concept
> > available to the end user using your code, you must satisfy condition
> > #1 above instead.
>
> > For most languages and platforms, shipping pre-compiled objects (not
> > source) is enough to satisfy #1, as the user can rebuild theLGPL
> > library, and relink the code with the pre-compiled objects resulting
> > in a new version of the distributed application.  With GWT, this is
> > impossible since the GWT requires the original java source in order to
> > do its magic.  Therefore, to satisfy condition #1 above, you must
> > provide source to the end user for your entire application.
>
> > There was a question above about flash, and I think Kebab answered it
> > well.
>
> > On Feb 14, 7:37 am, Axel Kittenberger <axe...@gmail.com> wrote:
>
> > > GPL as wellLGPLdo not require you to put the source along with the
> > > compiled binary. However they require you to provide the user at least
> > > one way to receive the source if he requests so. For example this can
> > > be an email like "If you wanna the source ask here". Or a link, or
> > > whatever. GPL requires you to offer the source of the whole project
> > > whileLGPLonly requires you to offer the sources of the libraries you
> > > modified. If you haven't modified the librariy a redirect on request
> > > to the original public location you obtained it from suffices as well.
>
> > > Other than that, I'm a bit confused on the link you gave, didn't see
> > > what post is from the FSF. But at last its what the FSF says that
> > > counts, they obviously understand the (L)GPL better than anyone
> > > else :-)
>
> > > On Feb 14, 5:44 am, "kebab.she...@gmail.com" <kebab.she...@gmail.com>
> > > wrote:
>
> > > > that would be the correct conclusion if your Flash-based Combined
> > > > Work/project used any libraries licensed underLGPL(Unless I think
> > > > the copyright owners of the corresponding libraries added any more
> > > > clarification in the licensing terms on the usage of their code).
>
> > > > On Feb 13, 10:01 pm, Peter Blazejewicz <peter.blazejew...@gmail.com>
> > > > wrote:
>
> > > > > hi,
> > > > > I don't understand conclusion in relation to GWT output,
> > > > > Following final statement - but in different scope - me as Flash/Flex
> > > > > developer - I would have to post all .as (actionscript) source
> > > > > files/.swc library file(s) together with compiled output .swf file
> > > > > (transcoded results send to browser) for all people browsing that page
> > > > > with flash compiled movie, so they can modify source and republish
> > > > > according toLGPL???
>
> > > > > regards,
> > > > > Peter
> > > > > On Feb 12, 8:32 pm, "drak...@gmail.com" <drak...@gmail.com> wrote:
>
> > > > > > To summarize:
>
> > > > > >LGPLsoftware that is brought into your GWT based application and sent
> > > > > > to the client due to being translated into javascript by GWT requires
> > > > > > that the source of the library and application be available to any
> > > > > > user that uses the GWT module in their browser.
>
> > > > > > Please note that we aren't talking aboutLGPLcode that is used only
> > > > > > by the server side components of your GWT application.  Only the ones
> > > > > > that are translated into javascript and transmitted to the client to
> > > > > > run in the browser.
>
> > > > > > Please refer to the other thread for details of why this is true.- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages