[Mono-devel-list] ByteFX development

Jonathan Pryor jonpryor at vt.edu
Wed Sep 22 07:36:57 EDT 2004

On Wed, 2004-09-22 at 03:37, Chris Turchin wrote:
> I have been lurking in the background and was wondering what the
> situation is when I have provider factory like:
> which, let's say, uses System.Data as a default provider but could also
> use a GPL'ed DataProvider if the user were so inclined and modified the
> app.config accordingly. 

See the most recent thread.  Then see a lawyer (or three).

AFAIK, the primary question is going to be one of bundling.  If you
bundle the GPL'd library with your app (or the GPL'd library is bundled
with the factory, which in turn is bundled with your app), then your
code must be GPL'd.  Or be available under a GPL-compatible license. 
Period.  (Because you're distributing GPL'd code, which requires
permission to do under copyright law.)

If you *don't* bundle the GPL'd library, you're clear.  See section 2:

        ...If identifiable sections of that work are not derived from
        the Program, and can be reasonably considered independent and
        separate works in themselves, then this License, and its terms,
        do not apply to those sections when you distribute them as
        separate works...

Of course, see a lawyer for actual advice.

In theory, if the user needed access to ByteFX (for example), they could
separately install it and configure the factory to use ByteFX. 
Considering that the user doesn't need to distribute their changes, they
can do this without violating the GPL (no distribution).

If they tried to distribute this packaging arrangement outside of their
organization, then they *would* need to follow the GPL.

This is the joy of dynamic linking.  I think.

> Am I then as a developer of this application in the position that I need
> to conform to all licenses which might apply to the possible data
> providers, just because I am using a DB provider factory that could in
> theory support them? 

That's not just ridiculous, that's impossible -- there's an infinite
number of possible licenses, and the only way to conform to *all* of
them is to add your work to the public domain.  Which probably won't go
over too well with most developers...

> This seems ridiculous to me, as I am just providing
> someone with the opportunity to use another DB provider if they want, I
> am not distributing it with my application. If this is the case,
> however, then suddenly flexible nature of the IDb* interfaces falls into
> a whole other light for me...

At the end of the day, the GPL restricts copying and modification.  If
you never modify or distribute the GPL'd code, then you don't have to be
GPL compatible.  Of course, if you're *not* GPL compatible, then your
users can't legally distribute your code with a GPL'd library, which may
annoy them...

 - Jon

More information about the Mono-devel-list mailing list