On Fri, May 18, 2007 at 05:11:06PM +1000, Amos Shapira wrote:

> We have just noticed that one of the programs in our proprietary arsenal
> uses GPL code (libipq, the netfilter interface library) even though the
> contractor who wrote it was instructed to re-code the application to avoid
> using GPL code.

Before you do anything, make sure to hire a good lawyer who understands
and deals with intellecutal property issues. 99% of the corporate lawyers
out there do not.

The following is my opinion. I am not a lawyer.

The second question is which version of the GPL does the library use?
Is it the original GPL, or the LGPL.

The question here though is what does your program do? If the code
from the library was included in your program, then it is covered under
the GPL if the GPL and not the LGPL was its license. (cut and paste).

If the library has a published interface and all your programmer did is
call it using that interface, then your code is not covered by the GPL.

If the program uses interface options that do not exist in the documentation,
or it plays games (such as the infamous "this code is not released under the
GPL" comments to fool a module), then there is some question as to it
being under the GPL.

Assuming the library was released under the GPL, then you would have to
make the source code for the library available IF you include it in
your product. Dynamicly linked libraries are NOT included, staticly
linked ones are. 

If your program loads the library included in whatever distribution your
customer is running "on the fly", then it's not part of your program and
you don't have to make the source code available. If it's staticly
linked, then you need to make the source code of the library publicly
available. 

Note that "send me $100 and I'll send you a floppy" has been done before
and not challenged in court. One person even went further, he asked for
a CD burner. :-)

What I would do:

1. Contact a lawyer. You may be in the clear anyway.

2. Contact the author of the library. Selling proprietary licenses for
   code previously released under the GPL is now common and supported
   by many people on this list. All you have to do is re-issue the version 1
   code as version 2, with a new license.

   I don't agree with it, but have been harrased about not agreeing with
   it on this list.

3. See if there is a BSD version of the library. BSD uses a different
   license that allows you to do what you want with the code. If there
   is use it instead. 

> 1. Clean-room implementation - one programmer reads the code and describes
> it in a document which is then passed to another programmer to implement.
> Possibly the best solution but we suspect it'll take most effort too.

Unecessary. There already is public documentation for the library. You
can start from that. The GPL only covers the code, not the interface,
or the technology within.


> 2. Wrap the libipq calls with a separate GPL program which will talk to the
> proprietary code over pipes. It will slow things down and seems to take the
> least effort, but most importantly we are not sure whether this is allowed
> by the GPL.

IMHO a total waste of time.


> 3. Try to understand the netfilter kernel interface that libipq talks to and
> write our own cut-down interface functions which do just what we need and
> nothing more. For this I wonder whether it would be OK to learn the
> interface by looking at the libipq code (I suspect not). It looks like
> reading the kernel side of the API IS allowed under the Linux license (and
> besides, our code doesn't "link" with the kernel).

That is IMHO the best way to do it. You can also hire the author of
the library to write a new one for you. 


> Releasing the program which links with libipq will be cost us a major market
> advantage, so it's a very unattractive option.

I don't see how. Releasing the source code of your application might,
but that is IMHO totally unecessary.

Geoff.

-- 
Geoffrey S. Mendelson, Jerusalem, Israel [EMAIL PROTECTED]  N3OWJ/4X1GM
IL Voice: (07)-7424-1667 U.S. Voice: 1-215-821-1838 
Visit my 'blog at http://geoffstechno.livejournal.com/

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to