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