Re: [PATCH] USB: mark USB drivers as being GPL only

David Newall
2008-02-07T13:37:24Z

Chris Friesen wrote:
> Marcel Holtmann wrote:
>
>> If the developers say that this symbol can only be used in GPL code (and
>> with EXPORT_SYMBOL_GPL it is quite clear) then you have to obey to that
>> license or don't use this symbol at all.
>>
>> If you use that symbol inside non-GPL (meaning you link at runtime) then
>> you are in violation of the GPL license. We can't make it much clearer.
>
> Not necessarily so. The developers feel that any code using that
> symbol is necessarily a derivative work,

The problem with that is this: To be derivative, a work has to be
derived from another work. That's what "derivative" means. Is it by
prescience that those marking symbols as EXPORT_SYMBOL_GPL know that
only things derived from something else are capable of using them?
Derived from what? The use of a separate module does not make something
derivative. It makes it a client. Any binding between the two modules
occurs only at runtime, and is purely ephemeral.

I make this charge: Some, perhaps much, of the GPL-exported symbols have
been mislabelled. There is no prescience, and those who labelled them
such are really trying (and failing) to claim an additional licence
condition.

I further make this claim: an attempt to add a licence condition in that
fashion is illegal, at least it is under various Australian laws, but I
expect it's a similar story elsewhere. For a start, it's an attempt to
vary licence conditions after the contract is made, and also without due
notice. It also attempts to unfairly restrict trade. It's probably
fraud, in that it purports to be a work provided under GPL, while
silently claiming a different (and largely unstated) licence.

The EXPORT_SYMBOL_GPL should be removed, because it's based on a lie.
You cannot know that only GPL works are capable of using the symbol; you
cannot know that all works that do use it are derivative of something;
you cannot even say, a priori, what they are derived from.