lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MDEHLPKNGKAHNMBLJOLKKEMOKCAC.davids@webmaster.com>
Date:	Thu, 7 Feb 2008 16:18:05 -0800
From:	"David Schwartz" <davids@...master.com>
To:	"Linux-Kernel@...r. Kernel. Org" <linux-kernel@...r.kernel.org>
Cc:	"Chris Friesen" <cfriesen@...tel.com>, "Greg KH" <greg@...ah.com>,
	"Christer Weinigel" <christer@...nigel.se>,
	"Pekka Enberg" <penberg@...helsinki.fi>,
	<linux-usb@...r.kernel.org>
Subject: RE: [PATCH] USB: mark USB drivers as being GPL only


> Don't ignore, "mere aggregation of another work not based on the Program
> with the Program (or with a work based on the Program) on a volume of a
> storage or distribution medium does not bring the other work under the
> scope of this License."  Static linking certainly makes something part
> of the whole; dynamic linking doesn't.

Actually, static linking does not, since the whole is not a "work". Under copyright law, a "work" can only be made by creative effort. Static linking is not creative effort, so it cannot create a work. If it were, the linker would be entitled to copyright on the new work, which makes no sense at all.

An exception might exist if there were a large number of equally good ways to perform the link and the person who lined it had to creatively chose a method. But normally, anything purely dominated by functional considerations (which statically linking almost always is) is not considered sufficiently creative.

If you statically link work "X" to work "Y", the result is *not* work "Z", derivative from "X" and "Y". It is parts of work "X" and parts of work "Y" mechanically combined. A group of combined works follows the license for each of the individual works from which sufficient protectable expression has been taken.

A "derivative work" is a new work, and can only be formed by creative effort not in the works it is claimed to be derivative of.

And to Alan Cox, who write:

> First mistake: The GPL is not a contract it is a license.

A license is a form of contract in which part of the compensation one party receives is rights to the intellectual property of the other party.

>If the GPL was a contract it could most certainly impose conditions upon
>original works. Contract law permits to write things like "If you buy the
>source for this package you agree not to write a competing product for
>three years even if an origina work". 

Sure, and those things would apply to anyone who has accepted the contract. Why do you think the GPL couldn't say those things and enforce them against anyone who had agreed to the GPL?

How is agreeing to release source code any different from agreeing not to write a competing product? (Except that a court may be more likely to enforce the latter than the former, of course.)

And to Marcel:

> so how do you build this module that is not linked without using the
> Linux kernel. Hence derivative work. Hence dynamic linking at runtime of
> binary only code is violating the GPL.

When there is only one way to do it, you cannot copyright that one way. You need a patent for that. So, no, it's not a derivative work because what was taken is the one way to do it, and "one way to do it" is not protectable expression. A derivative work only applies when protectable expression is taken.

DS


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ