[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Use of GPL'd code with proprietary programs

From: Haakon Riiser
Subject: Use of GPL'd code with proprietary programs
Date: 5 Jul 2004 15:38:07 +0200
User-agent: slrn/ (Linux)

I work for a company that would like to use a couple of GPL'd
libraries in our embedded system;  specifically, in its media
player.  Here's a simple ASCII drawing that illustrates our

              Non-decoder apps that use the a/v mixer program
              possibly at the same time as one of the decoders
      WMV9 decoder (proprietary)  |  MPEG-1/2 decoder (GPL)
                   |              |            |
         |         AVD (Audio/Video Daemon)          |
         |general audio/video sync/mix/output program|
         |        (developed entirely by us)         |
                            / \
                           /   \
                          /     \
                     /dev/fb   /dev/dsp

AVD communicates with its clients via shared memory, but according
to the GPL FAQ, shared memory communication is too close for
the program to fall under the aggregate clause, which the FAQ
states only applies when the GPL program communicates with the
non-GPL program via sockets, pipes and command line arguments.
In short, AVD's license has to be GPL compatible so that we can
legally connect with GPL'd clients -- we have no problem with this.

However, we also need to use the WMV9 decoder with AVD and this
WMV9 decoder belongs to Microsoft, so obviously we can't release
/it/ under the GPL.  I didn't see this as a problem, because
we wrote AVD from scratch, and are allowed to dual license it:
AVD could operate under the GPL when communicating with the MPEG
decoder, but under a proprietary license when talking with the
WMV9 decoder.  Since it will never do WMV9 and MPEG at the same
time, I believed this to be legal.  (But I'm a programmer, not
a lawyer, so please correct me if I'm wrong. :-)

Unfortunately, it gets a little more complicated than this: AVD is
also used by other programs that need to play sound.  For example,
let's say we have a proprietary Tetris game that wants to output
sound effects.  A user might like to listen to MP3s while playing
Tetris, and that means that AVD has to operate under two different
licenses at the same time: GPL to be able to use the MPEG decoder,
and a proprietary license when talking with the Tetris game,
or else our Tetris clone would also have to be GPL.

Can we do this?  Can a program written by us operate under two
different licenses at the same time, thus stopping the GPL chain
reaction from spreading to every AVD client?

Some legal advise left us a little uncertain, and we are a bit
sceptical.  As a key rule we are advised: "When using the part of
the GPL that places restrictions on the distribution of programs
that link against GPL'd code, legal restrictions only apply when
the GPL'd code is /modified/.  We have not modified the GPL code.

If this is correct, I don't understand the point of the LGPL.
With the LGPL, you still can't modify the code and distribute
the program as closed source, so the only difference between LGPL
and the GPL is that the LGPL allows dynamic linkage.  If the GPL
allows, not only dynamic, but even static linkage (as long as the
library is not modified) then the LGPL (as I have understood it)
is meaningless.

Any help is appreciated.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]