from the libertarian newspaper - the topic that won't die! (Actually GPL)

Hal Duston hald at kc.rr.com
Thu Jan 25 11:43:12 CST 2007


Luke -Jr wrote:
> On Thursday 25 January 2007 10:14, Hal Duston wrote:
>   
>> Refering to another work, e.g. #include doesn't make the source code a
>> derivative work.  If I have created the source code as an original work and
>> don't include any of the referenced work, but only refer to (#include) it,
>> it is not derivative work, and I can distribute it under any terms I may
>> desire.  In order for a work to be a derivative work, the work needs to
>> actually include the other work and not merely refer to it.
>>     
>
> Mere referencing would not make a kernel module possible. You need to copy 
> symbol names and derive code from function arguments and Linux-invented 
> structures.

Copying a symbol name doesn't make something a derivative work.  I have
written code which copies the symbol name strcpy, but that doesn't make
my code a derivative work of the standard library which defines strcpy.

As "derive code from function arguments and Linux-invented structures",
I don't even know what that means.  I write code to pass values to the
functions as arguments, but that also doesn't make my code a derivative
work.  I also write code that populates the Linux-invented structures,
but once again, that code isn't derived from the other work, as it does
not include any text in common.  "My source code file" below is not a
derived work of the library, as it uses the library, and refers to the
include file, but does not have any code in common.

/***  My source code file  **************************************/
#include "include.h"

void func_d(void);
void func_d(void)
{
   struct struct_b c;

   c.a = 1;
   c.b = 1;
   func_a(c.a, c.b);
}
/****************************************************************/
/***  Source code from library  *********************************/
#include "include.h"

int func_a(int a, int b)
{
   return a - b;
}
/****************************************************************/
/***  Include file from library  ********************************/
int func_a(int a, int b);

struct struct_b
{
   int a;
   int b;
};
/****************************************************************/

--
Hal Duston
hald at kc.rr.com


More information about the Kclug mailing list