wxWidgets license issues - source code

This forum can be used to talk about general design strategies, new ideas and questions in general related to wxWidgets. If you feel your questions doesn't fit anywhere, put it here.
Post Reply
ezequielv
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sun Oct 10, 2004 9:20 pm
Location: Berkshire, England

wxWidgets license issues - source code

Post by ezequielv » Fri Oct 15, 2004 7:17 pm

I'm having a really hard time introducing wxWidgets to my company (see this thread).

Amongst the objections I'm getting, there's the issue on source code distribution. What happens if:

* your application is not open source, it is commercial.
* you have modified some of the wxWidgets source files to adapt them for a particular use (my superiors assume that'll be the case, no matter what I say).
* you distribute the souce code to your customers.

My superiors' main concern is what happens when you modify the library source code. It's not clear from the license what happens with the source code for the library. The license states you can distribute the object code under your own terms, but it says nothing special about source code.

So I need to know for certain if we, as a user of the library, are entitled (but not obliged) to modify the source and distribute those changes only to those customers we want to distribute the source to. In other words, does making changes to the library and distributing binary code *and* source code to some of our customers forces us to distribute the souce code to everybody to see?

I'd appreciate your comments on this.

geon
I live to help wx-kind
I live to help wx-kind
Posts: 189
Joined: Tue Sep 07, 2004 4:10 pm
Location: Sweden, Uppsala

Post by geon » Fri Oct 15, 2004 8:29 pm

As far as I can understan from the lisence (included in the manual), there is no problems to do what you intend:

* your application is not open source, it is commercial.
As mentioned by the copyright (exeptions from the GPL lisence):
2. The exception is that you may create binary object code versions of any works using this library or based on this library, and use, copy, modify, link and distribute such binary object code files unrestricted under terms of your choice.
I interpret this, as that anyone can do whatever he wants with the binary result of the wx library. That includes your executable. So you can sell it, give it away or print it out. Nobody cares. (Well, it would be a shame to waste all that paper, printing a binary.)

* you have modified some of the wxWidgets source files to adapt them for a particular use (my superiors assume that'll be the case, no matter what I say).
I believe the GPL lisence permits this, as long as you clearly indicate wich parts of the source that are not the official version.


* you distribute the souce code to your customers.
The standard GPL will even force you to distrubute the source code. The wx lisence is a bit fuzzy here (to me). As I understand, it will be perfectly fine if you distrubute the whole wx library, including your changes, clearly indicating wich portions that are yours, and state under wich lisence your modifications are distrubuted. (Your modifications need not be distrubuted under the GPL or wx lisence.)

The simpliest thing would be to copy all widgets that needs modification, modify them, and release them under the wx lisence as a specialized widget. There are tons of those out there allready, ranging from text-boxes to tree-controls. It is not like it needs to has to be usefull for anyone else.

User avatar
Ryan Norton
Moderator
Moderator
Posts: 1319
Joined: Mon Aug 30, 2004 6:01 pm

Post by Ryan Norton » Fri Oct 15, 2004 9:17 pm

The following are some responses from the wx-developers (I'm one too for the record - but I didn't know the answer to #3:
Vaclav Slavik wrote:
> My superiors' main concern is what happens when you modify the
> library source code. It's not clear from the license what happens
> with the source code for the library. The license states you can
> distribute the object code under your own terms, but it says
> nothing special about source code.

This is not true. It says clearly that "you can redistribute it and/or
modify it under the terms of the GNU Library General Public Licence
as published by the Free Software Foundation; either version 2 of the
Licence, or (at your option) any later version." So the obvious
answer is: read LGPL.

> So I need to know for certain if we, as a user of the library, are
> entitled (but not obliged) to modify the source and distribute
> those changes only to those customers we want to distribute the
> source to.

Yes. But as soon as you distribute the sources to anybody, you *must*
distribute them under the terms of wxWindows Licence (or LGPL or GPL;
again, read the licence). Note that this applies to your
modifications of the wx library, not to the rest of your source code.

> In other words, does making changes to the library and
> distributing binary code *and* source code to some of our customers
> forces us to distribute the souce code to everybody to see?

You can distribute sources of modified wx to your customers only, but
it must be under the terms of wxWindows Licence, which means that the
customers will be allowed to further distribute the (modified wx)
sources to anybody they want.
Vadim Zietlin wrote: RN> So I need to know for certain if we, as a user of the library, are entitled
RN> (but not obliged) to modify the source and distribute those changes only to
RN> those customers we want to distribute the source to. In other words, does
RN> making changes to the library and distributing binary code and source code
RN> to some of our customers forces us to distribute the souce code to everybody
RN> to see?

I'd say yes (AFAIK, YMMV, IANAL). Of course, unlike with GPL, you'll have
to distribute the code of the (changed) library only, not your own code.

My reasoning is that if we don't ask for this anyone can create a custom
improved version of the library and start selling it without owing anybody
anything.
[Mostly retired moderator, still check in to clean up some stuff]

User avatar
Ryan Norton
Moderator
Moderator
Posts: 1319
Joined: Mon Aug 30, 2004 6:01 pm

Post by Ryan Norton » Fri Oct 15, 2004 9:30 pm

Wow - that was a hot topic.... the project leader chimed in too -
Julian Smart wrote: At 21:54 15/10/2004, you wrote:
>So I need to know for certain if we, as a user of the library, are entitled
>(but not obliged) to modify the source and distribute those changes only to
>those customers we want to distribute the source to. In other words, does
>making changes to the library and distributing binary code *and* source code
>to some of our customers forces us to distribute the souce code to everybody
>to see?

Is there a problem with distributing the source code of changes you
make to the library? I can't see why, unless they're whole new controls,
in which I wouldn't regard that as modifications to wxWidgets.

The licence does oblige one to give back mods to the source, but it wouldn't
occur to me that there would be a need for secrecy about it. It makes sense to
give back improvements given that you're using other people's work.

I think the key is in the nature of the improvements and what's so special
about them that they can't be distributed. Maybe there's a way
of designing the changes such that the core library doesn't need
to be touched -- or, putting in hooks that _can_ be freely distributed,
and then making the proprietary code use the hooks. Sounds
plausible? For example, say the changes were some kind of instrumentation.
You could change the source code such that every so often it called an
app-supplied function, say, monitoring the state of sizers. You can then
plug in an app-supplied function that may be as secret and proprietary as you
like, without the need to distribute it.
[Mostly retired moderator, still check in to clean up some stuff]

eros
I live to help wx-kind
I live to help wx-kind
Posts: 162
Joined: Mon Sep 06, 2004 1:40 am
Location: Argentina

Post by eros » Fri Oct 15, 2004 9:53 pm

You can disagree about many things of wxWidgets, but the license is perfect IMO.

You're using the toolkit/framework for free, and it permits you to distribute your applications with your own license, thus, if you make changes/improvements to that toolkit/framework you should (must IMO -- this is almost an ethical and moral issue!) give that work back to the community.

Its a very reliable bussines model for individuals and small companies, you don't have to invest a single dollar to make a powerfull crossplatform application (gcc and mingw), and in case you're successfull you'll be contributing directly (with those improvements you made) and indirectly (promotion etc).

Thats the conclusion I've made after reading the license several times. Hopefully I'm right.
...

gururamnath
Moderator
Moderator
Posts: 466
Joined: Sat Sep 18, 2004 2:49 am
Location: California, USA

Post by gururamnath » Fri Oct 15, 2004 10:10 pm

Most of the modifications done to the wx libs are given back to the community. AOL is a good example for that. I guess they contributed more fixes/modifications to the 2.3.x or 2.4.X code base. Even if people going to use MFC/VCL/QT and make modifications, they are not supposed to give the changes to anyone else and charge money for it. In that case why people are making so much fuss about wx libs ?

Also it will be costly for any company to maintain a seperate branch of modified wx in the long run. Since wx libs are evolving day by day, it will be hard for any company to do massive merges and maintain the code without any breakage.

-Guru Kathiresan

ezequielv
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sun Oct 10, 2004 9:20 pm
Location: Berkshire, England

Lawyers?

Post by ezequielv » Fri Oct 15, 2004 11:40 pm

Hi. Thanks a lot for all of your posts!

The other thing that I was "given" today as a strong argument against using wxWidgets (or any other non-Microsoft library, as they are already accepted by the company, although nobody could tell me why) is that we have no legally authoritative opinion that the library does indeed allow the use everybody is telling me.

As you have probably guessed by now, they're looking for reasons to *not* use the library as opposed to trying to tackle the possible problems themselves. So although I am convinced (technically) that using wxWidgets will be a good thing, they're more into the "you developers can cope with no having that library, and develop everything yourselves or by using Microsoft's libraries". The good news is if I get this library approved, there'll be a "green light" for using it and hopefully my co-developers will be seing the benefits in the mid term.

From the arguments I've been reading in this post the license looks promising and adequate for us, but without qualified legal advice I'm afraid they're not willing to take the risks. Does anybody know any lawyers with software license experience willing to look for answers on the questions I've made?

All in all, I think this discussion is very valid and relevant for many people out there in companies finding a great deal of resistance for suggesting what seems to be "yet another library".

Thanks again. I'll be reading all of your posts! :)

Post Reply