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

Re: GPL v LGPL for libraries



> I really don't buy the argument that a library has different
> qualifications for licensing than a free application.  In both cases,
> you should be free to use the code in your own free application.

Good point. My claim is actually that we do _not_ treat them the same way.
We require that application impose no limitations on its invocation, while
allow the library to do that.

Here is some close-to-reality example.

Suppose we have GPL'd library, say libnlp, that contains a routine 
char* get_stem(char* s); 
the purpose of this routine is to return a stem (root) of the english word
supplied as an argument. (Such a routine actually exists and fortunately in a
public domain, not GPL'd :)

Now, at some point in my application I want to do exacltly this - extract a
stem from the word, which is a tiny step in all the processing my application
does. I can do it the following easy way:

char *s,*w;
w="driving";
s=get_stem(w);

and finally link it with -lnlp  flag.

In case my application is not GPL'd the above is illegal.


Now, to get around this, I clreate a tiny GPL'd program as follows:

getstem.c:

#include ....
int main(int argc,char* argv[]){
   printf("%s\n",get_stem(argv[1]));
   rerurn 0;
} /*no error checking, sorry :) */

and link it with -lnsl

And in my main program I just have to use

char* getstem="/usr/lib/myapp/getstem";
char* w="driving";
char* buffer=(char*)malloc(strlen(getstem)+strlen(w)+10);
sprintf(buffer,"%s %s",getstem,w);
FILE *sf=popen(buffer);
fgets(buffer,strlen(buffer),sf);
fclose(sf);
char* s=buffer;


Now everything is legal. But is there anything substantially different 
in these two cases? Except for implementation details, of course.


Thanks,

Alex Y.
-- 
   _ 
 _( )_
(     (o___           +-------------------------------------------+
 |      _ 7           |            Alexander Yukhimets            |
  \    (")            |       http://pages.nyu.edu/~aqy6633/      |
  /     \ \           +-------------------------------------------+


Reply to: