[ale] OT: GPL Question

Michael Hirsch mhirsch at nubridges.com
Wed Sep 4 12:23:37 EDT 2002


On Wed, 2002-09-04 at 12:18, cfowler wrote:
> This is something I deal with everyday.  I am working on an embedded
> project that is very specific in design.  Sure I use some GPL code and
> some proprietary code.  But the GPL code does not fulfill my needs or
> does something that I need it to do.  So I have 2 options.
> 
> 
> 1) Modify to add/remove functionality
> 
> 2) Rewrite my own stuff
> 
> 
> I ususally pick #2.  Most GPL code is so poorly documented, #2 saves me
> more time then trying to reverse engineer the code so I can add to it. 

I have the same questions all the time in both my current job and my
previous one.  I usually pick #1.  If there is GPL code that does 90% of
what I want it is way easier to modify the GPLed code than to redo it
from scratch.  But I have done it both ways.

--Michael

> Chris
> 
> On Wed, 2002-09-04 at 12:04, Michael Hirsch wrote:
> > On Wed, 2002-09-04 at 11:00, James P. Kinney III wrote:
> > > Case A:
> > > Library is closed source, NOT GPL. Your app is GPL. By linking your app
> > > to a closed library, you can not force the closed library to become GPL.
> > > 
> > > Nor should you be able to do so.
> > > 
> > > Case B:
> > > Library is GPL. Your app requires that library in order for the app to
> > > function. Your app MUST be GPL.
> > > 
> > > Case C:
> > > Library is GPL clone of closed source library. GPL'ed lib made using
> > > public info of API for closed lib. Since your app can use either the
> > > closed source OR the GPL'ed lib, you can choose the license.
> > 
> > That sound reasonable, Jim, but I don't think it is that simple.  I
> > don't recall the license saying anything about whether there is another
> > library with a compatible API.  This is really the whole problem with
> > the GPL and dynamic linking.  With static linking there is no question
> > what library you are linked to.  With dynamic linking you don't know.
> > 
> > According to your analysis of cases B and C, whether you must use the
> > GPL depends on some question about the construction of the GPLed
> > library--not a question that is answered in the license.  I don't think
> > a license can depend on this.
> > 
> > Here's a weird idea.  It seems that whether I must GPL my code depends
> > on whether there is a non-GPLed library that I'm allowed to link to.  If
> > there is, then it doesn't matter that there is also a GPLed library, I
> > don't need to GPL my code.  That is my reading of Case C.
> > 
> > So, if I want to link to readline I just have to clone its API in a
> > non-GPLed library.  That is hard to do if you want the library to work
> > the same way.  But what if I just make it have the readline API but none
> > of the calls actually do anything.  (Think of it as having a few
> > bugs--nothing works.)  My code links to it, so I don't need to GPL it. 
> > Of course, it doesn't work as expected, but so what?  It is not my fault
> > that all the users (including me, heh heh) choose to link with GNU
> > readline instead of my readline clone.  But since the readline clone
> > exists, I'm safe against GPL infringement.
> > 
> > It's things like this that make me think that dynamic linking should not
> > force the GPL on anyone.
> > 
> > --Michael
> > 
> > > It is good to remember the basic motivation behind the GPL. Like in
> > > academic research, ideas build on the efforts of previous work. The GPL
> > > serves as a mechanism to protect that chain of development. It prevents
> > > the outright theft of a chain development by a single entity. 
> > > 
> > > On Wed, 2002-09-04 at 09:24, cfowler wrote:
> > > > What if I create my own library.  And add a function call to my library
> > > > to GPL code.
> > > > 
> > > > 
> > > > /** GPL Code **
> > > > 
> > > > int
> > > > main(void)
> > > > {
> > > > 	// Get some info
> > > > 	info = getInfoFromMyLibrary();
> > > > 
> > > > }
> > > > 
> > > > 
> > > > 
> > > > Do I have to release the code in getInfoFromMyLibrary() ?
> > > > 
> > > > Chris
> > > > 
> > > > On Wed, 2002-09-04 at 09:20, Michael Hirsch wrote:
> > > > > On Tue, 2002-09-03 at 21:23, Mike Panetta wrote:
> > > > > > Some PLEASE correct me if I am wrong...  But here is my take on what you
> > > > > > guys are saying.
> > > > > > 
> > > > > > So does that mean if somebody say makes a GPL'd version of winsock.dll
> > > > > > (for example) and replaces the propriatary version of winsock.dll on
> > > > > > their windows box with it, everything that is now using the new and
> > > > > > GPL'd dll is required to take on the GPL license or be sued by the FSF?
> > > > > 
> > > > > Not at all.  You can't convert someone else's code to GPL, claims by
> > > > > Microsoft notwithstanding.  But if *you* write code designed to be
> > > > > linked to a GPLed dll you could get in trouble.  IMO, this is quite
> > > > > debatable, but that is Richard Stallman's interpretation.
> > > > > 
> > > > > > Or back to the web server example... If someone makes a web server
> > > > > > plugin that is propriatary, and writes it to the plugin API of a
> > > > > > propritary web server, and someone else loads their module into a web
> > > > > > server thats GPL'd that uses the same API (and thus works with the
> > > > > > module), does that mean that someone you do not even know or have
> > > > > > control over just forced you to GPL your code without you even knowing
> > > > > > it?
> > > > > 
> > > > > Nope.  Intention matters.  Since the code was not written to link to the
> > > > > GPLed code it is not GPLed.  As above, this is quite debatable, but that
> > > > > is Richard Stallman's interpretation.
> > > > > 
> > > > > > I do not understand this license... Really I do not :)  But the way you
> > > > > > guys are describing the linking process (specificly dynamic) it seems to
> > > > > > me that noone has control over code that they write anymore.  I can see
> > > > > > it now, some bastard (well in this case its not a bsatard ;) goes out
> > > > > > and writes a GPL'd API compatibility layer that allows you to run
> > > > > > windows programs on Linux (I do not think Wine is GPL'd is it?) thus
> > > > > > forcing all the windows companies out there to GPL their code... I don't
> > > > > > think so...  But that does sound like what you guys are talking about...
> > > > > 
> > > > > You think Stallman's interpretation is bad, try MySQL's sometime.  They
> > > > > beleive that "linking" means "interfacing"--even across processes. 
> > > > > According to their interpretation, if you write code using, say, jdbc
> > > > > that interacts with MySQL then you need to GPL your code or by a license
> > > > > for MySQL.  The code may not even be on the same computer that MySQL is
> > > > > running on and they claim contamination.  I think that's hooey.
> > > > > 
> > > > > > I think the only way we will ever know how or if this license will work
> > > > > > is if someone sues.  And I think that if someone does sue, the license
> > > > > > may fall apart...  I have not read it myself (nor could I, I do not
> > > > > > understand legalease AT ALL), but it sounds like it is not a very
> > > > > > logical license to me.
> > > > > 
> > > > > It's actually quite readable and i recommend that you read it.  That is
> > > > > the only way to be informed.  The tricky part is not in the license
> > > > > anyway.  The concept of "derivative work" is part of copyright case law
> > > > > and not clarified in the document.  The question is whether linking to a
> > > > > library creates a work which is derivative of the library.  For static
> > > > > linking I think a very strong case can be made for "yes".  For dynamic
> > > > > linking or module loading a pretty strong case can be made for "no", but
> > > > > Stallman disagrees.  A question to think about is "How do static linking
> > > > > and dynamic linking differ, legally, and how should that effect the
> > > > > license of the source code?"  Since any code that can be dynamically
> > > > > linked can also be statically linked, that question is crucial.
> > > > > 
> > > > > --Michael
> > > > >  
> > > > > > Mike
> > > > > > 
> > > > > > On Tue, 2002-09-03 at 08:47, Michael Hirsch wrote:
> > > > > > > On Fri, 2002-08-30 at 17:48, Andrew Grimmke wrote:
> > > > > > > > It is my understanding that this is the specific reason that the LGPL
> > > > > > > > was developed.  So that one could use a free library and not be bound by
> > > > > > > > the GPL. (lesser also stands for library)
> > > > > > > 
> > > > > > > Yes, that was the motivation.  But that was also before dynamic linking
> > > > > > > was common.  I think most people agree that statically linking to GPLed
> > > > > > > code requires the GPL for all code.  But the issue for dynamic linking
> > > > > > > is much more vague.
> > > > > > > 
> > > > > > > Matt Asay, in his article, claims that most people agree that
> > > > > > > dynamically linking to GPLed code does not require GPLing your code.  He
> > > > > > > says, this, but I couldn't find any justification for this claim other
> > > > > > > than the fact that Linus and the other kernel developers have agreed
> > > > > > > that code can make system calls to the GPLed kernel without requiring
> > > > > > > that the code be GPLed.  This is a far cry from linking GPLed libraries.
> > > > > > > 
> > > > > > > I also don't know of any programs that do what Asay is claiming--linking
> > > > > > > against GPLed libraries.  Lots of proprietary code links against glibc
> > > > > > > and other LGPLed libraries, but try releasing sealed code that links to
> > > > > > > readline (a GPLed library) and see how long before the FSF lawyers call
> > > > > > > you.
> > > > > > > 
> > > > > > > I do know of several software companies that dual license their
> > > > > > > libraries as either proprietary or GPL.  The most prominent example is
> > > > > > > Troll Tech with their qt library.  They do not agree that you can use
> > > > > > > their GPL library to develop closed code:
> > > > > > > 
> > > > > > >  Why is Qt Free Edition not distributed under the GNU Library (or Lesser) General Public License (LGPL)?
> > > > > > >  The LGPL is designed to "permit developers of non-free programs to use
> > > > > > > free libraries" (quote from the LGPL). In other words, if Qt Free
> > > > > > > Edition were LGPL'd, companies would not have to purchase the
> > > > > > > Professional or Enterprise Edition in order to make
> > > > > > > commercial/proprietary software, they could just use the Free Edition,
> > > > > > > free of charge. That would mean Trolltech would not get the revenue
> > > > > > > necessary for improving and extending Qt.
> > > > > > > <http://www.trolltech.com/developer/faqs/free.html#Q2>
> > > > > > > 
> > > > > > > I think that you are acting dangerously if you link to GPLed libraries
> > > > > > > with closed code.  There is a definite case to be made for it, but,
> > > > > > > unlike Asay, I think there are very few precedents backing up such an
> > > > > > > action.
> > > > > > > 
> > > > > > > You are, however, safe if you link to LGPLed libriries and you may make
> > > > > > > system calls to the GPLed Linux kernel without risk.
> > > > > > > 
> > > > > > > --Michael
> > > > > > > 
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > ---
> > > > > This message has been sent through the ALE general discussion list.
> > > > > See http://www.ale.org/mailing-lists.shtml for more info. Problems should be 
> > > > > sent to listmaster at ale dot org.
> > > > > 
> > > > > 
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > ---
> > > > This message has been sent through the ALE general discussion list.
> > > > See http://www.ale.org/mailing-lists.shtml for more info. Problems should be 
> > > > sent to listmaster at ale dot org.
> > > -- 
> > > James P. Kinney III   \Changing the mobile computing world/
> > > President and CEO      \          one Linux user         /
> > > Local Net Solutions,LLC \           at a time.          /
> > > 770-493-8244             \.___________________________./
> > > 
> > > GPG ID: 829C6CA7 James P. Kinney III (M.S. Physics)
> > > <jkinney at localnetsolutions.com>
> > > Fingerprint = 3C9E 6366 54FC A3FE BA4D 0659 6190 ADC3 829C 6CA7 
> > > 
> > > 
> > 
> > 
> > 
> > 
> 
> 



---
This message has been sent through the ALE general discussion list.
See http://www.ale.org/mailing-lists.shtml for more info. Problems should be 
sent to listmaster at ale dot org.






More information about the Ale mailing list