wxWindows Library License

106 views
Skip to first unread message

DRC

unread,
Mar 21, 2010, 4:28:34 AM3/21/10
to wx-di...@googlegroups.com
I apologize if this has been asked 1000 times before, but I couldn't
find the answer in the list archives or after a Google search. I have
been using the wxWindows Library License for my open source project for
quite a few years, and that project has gained significant momentum,
including being shipped as a product by a Fortune 500 company for about
5 years. Said company was very OSS-friendly and provided extensive
support for the community, etc. Recently, however, some other companies
have been asking about productizing the code and sought clarification
regarding what the wxWindows Library License requires.

My intent with using the wxWindows Library license has always been to
nullify LGPL Sections 6 and 7 -- in other words, to allow the
distributor to restrict reverse engineering of their binaries and to not
require them to distribute object code for the closed source portions of
said binaries or to acknowledge the use of my library.

However, after more closely studying (for many hours) the LGPL and the
wxWindows Library License, it seems that one could also interpret the
wxWindows Exception 2 to nullify LGPL Section 4 as well. In other
words, someone could modify the Library, distribute only a binary
version, and not be required to distribute the corresponding source.
I'm hoping this isn't the case, but I'm having a hard time coming up
with an argument as to why it wouldn't be. I was wondering if any of
the license's original authors monitor this list and might be able to
comment.

D. R. Commander
The VirtualGL Project

Vadim Zeitlin

unread,
Mar 21, 2010, 7:20:02 AM3/21/10
to wx-di...@googlegroups.com, DRC
On Sun, 21 Mar 2010 03:28:34 -0500 DRC <drcom...@gmail.com> wrote:

D> I apologize if this has been asked 1000 times before, but I couldn't
D> find the answer in the list archives or after a Google search. I have
D> been using the wxWindows Library License for my open source project for
D> quite a few years, and that project has gained significant momentum,
D> including being shipped as a product by a Fortune 500 company for about
D> 5 years.

Congratulations to your project!

D> My intent with using the wxWindows Library license has always been to
D> nullify LGPL Sections 6 and 7 -- in other words, to allow the
D> distributor to restrict reverse engineering of their binaries and to not
D> require them to distribute object code for the closed source portions of
D> said binaries or to acknowledge the use of my library.

I'm not sure if we use the same version of LGPL. The one at
http://www.gnu.org/licenses/lgpl.html doesn't have section 7 and section 6
doesn't seem relevant...

D> However, after more closely studying (for many hours) the LGPL and the
D> wxWindows Library License, it seems that one could also interpret the
D> wxWindows Exception 2 to nullify LGPL Section 4 as well. In other
D> words, someone could modify the Library, distribute only a binary
D> version, and not be required to distribute the corresponding source.

This _should_ be forbidden by our licence. Now, IANAL and all that but the
spirit of the licence is definitely supposed to not allow the distribution
of modified versions of the library without allowing access to the source.
And AFAICS our licence does state this clearly:

2. The exception is that you may use, copy, link, modify and distribute
under your own terms, binary object code versions of works based
on the Library.

"Works based on the library" is supposed to mean "applications using
wxWidgets" but not "modified versions of the library itself".

Again, AFAIK this has never been tested in courts (and hopefully never
will...) but the intention was to allow people to distribute their
applications using wx in statically linked form for convenience reasons.
But nobody should be able to distribute/sell the library itself without
providing its source.

Regards,
VZ

DRC

unread,
Mar 21, 2010, 3:59:02 PM3/21/10
to wx-di...@googlegroups.com
On 3/21/10 6:20 AM, Vadim Zeitlin wrote:
> I'm not sure if we use the same version of LGPL. The one at
> http://www.gnu.org/licenses/lgpl.html doesn't have section 7 and section 6
> doesn't seem relevant...

LGPL v2.1 is what I'm using. I don't think the wxWindows Library
License is meaningful in combination with LGPL v3, because LGPL v3 does
not define the term "work based on the Library."

> D> However, after more closely studying (for many hours) the LGPL and the
> D> wxWindows Library License, it seems that one could also interpret the
> D> wxWindows Exception 2 to nullify LGPL Section 4 as well. In other
> D> words, someone could modify the Library, distribute only a binary
> D> version, and not be required to distribute the corresponding source.
>
> This _should_ be forbidden by our licence. Now, IANAL and all that but the
> spirit of the licence is definitely supposed to not allow the distribution
> of modified versions of the library without allowing access to the source.
> And AFAICS our licence does state this clearly:
>
> 2. The exception is that you may use, copy, link, modify and distribute
> under your own terms, binary object code versions of works based
> on the Library.
>
> "Works based on the library" is supposed to mean "applications using
> wxWidgets" but not "modified versions of the library itself".
>
> Again, AFAIK this has never been tested in courts (and hopefully never
> will...) but the intention was to allow people to distribute their
> applications using wx in statically linked form for convenience reasons.
> But nobody should be able to distribute/sell the library itself without
> providing its source.

OK, good to know that my intent matches yours. However, the argument
which was made to me (by a lawyer) and which I'm having trouble refuting
is as follows:

A "work based on the Library" is defined in LGPL v2.1 Section 0 as
"either the Library or any derivative work under copyright law: that is
to say, a work containing the Library or a portion of it, either
verbatim or with modifications and/or translated straightforwardly into
another language." In other words, a modified version of the Library is
always a "work based on the Library", regardless of whether it is
distributed in source or object code form. Thus, if the wxWindows
Library License is excepting binary object code versions of works based
on the Library, that includes not only applications but binary versions
of the Library itself. If you are allowed to distribute the binary
version of the Library itself under "your own terms", that means you can
choose to ignore LGPL v2.1 Section 4 (which requires you to also
distribute source.)

IMHO, the wxWindows Library License should be more specific. I haven't
studied LGPL v3 enough to be able to say what the exception should be
for that license, but for LGPL v2.1, I would add an additional phrase to
the end of the exception clause:

"you may use, copy, link, modify and distribute under your own terms,

binary object code versions of works based on the Library, as long as
you also distribute the complete corresponding machine-readable source
code per the terms of the LGPL".

I am not a lawyer, however.

Vadim Zeitlin

unread,
Mar 23, 2010, 7:00:26 AM3/23/10
to wx-di...@googlegroups.com
On Sun, 21 Mar 2010 14:59:02 -0500 DRC <spam...@12foothedgehog.com> wrote:

D> OK, good to know that my intent matches yours. However, the argument
D> which was made to me (by a lawyer) and which I'm having trouble refuting
D> is as follows:
D>
D> A "work based on the Library" is defined in LGPL v2.1 Section 0 as
D> "either the Library or any derivative work under copyright law: that is
D> to say, a work containing the Library or a portion of it, either
D> verbatim or with modifications and/or translated straightforwardly into
D> another language." In other words, a modified version of the Library is
D> always a "work based on the Library", regardless of whether it is
D> distributed in source or object code form. Thus, if the wxWindows
D> Library License is excepting binary object code versions of works based
D> on the Library, that includes not only applications but binary versions
D> of the Library itself. If you are allowed to distribute the binary
D> version of the Library itself under "your own terms", that means you can
D> choose to ignore LGPL v2.1 Section 4 (which requires you to also
D> distribute source.)

I also have trouble refuting it. I wonder how could nobody have noticed
this before but this doesn't make the above any less true, of course.

IMHO we should have stated that the exception means that "linking a work
that uses the library with the library does not create a work based on the
library", unlike what the section 6 of LGPL 2.1 (sorry for mixing up the
licence versions BTW) says. But changing the licence to say it like this
now is going to be a lot of fun... I don't know anybody motivated enough to
do it.

And I still hope that we might be missing something because it seems
incredible that our licence so blatantly allows what it should have been
forbidding. I'd be really grateful if any of the people who wrote this
licence (Julian?) could post to this thread.

Regards,
VZ

DRC

unread,
Mar 23, 2010, 2:54:05 PM3/23/10
to wx-di...@googlegroups.com
On 3/23/10 6:00 AM, Vadim Zeitlin wrote:
> I also have trouble refuting it. I wonder how could nobody have noticed
> this before but this doesn't make the above any less true, of course.
>
> IMHO we should have stated that the exception means that "linking a work
> that uses the library with the library does not create a work based on the
> library", unlike what the section 6 of LGPL 2.1 (sorry for mixing up the
> licence versions BTW) says. But changing the licence to say it like this
> now is going to be a lot of fun... I don't know anybody motivated enough to
> do it.

Actually, even that would cause Section 4 to be nullified. Source is
only required to be distributed along with the binary if the binary is a
"work based on the Library." I would propose the following:

A. Bump the wxWindows Library License to version 3.2

B. Rename to "wxWidgets Library License", which I am given to
understand was already in the works.

C. Change Exception 2 to the following:

"2. The exception is that you may use, copy, link, modify and distribute

under your own terms, binary object code versions of works based on the
Library. However, if you copy or distribute a binary object code
version of a work based on the Library, you must also accompany it with
the complete corresponding machine-readable source code for the Library,
as required by the LGPL."

Again, this needs to be run by a lawyer, which I am not. :)

Reply all
Reply to author
Forward
0 new messages