I think that at the moment the general consensus is that it is ok to use
the Linux kernel APIs (but not the EXPORT_SYMBOL_GPL ones) from binary
modules _if_ _and_ _only_ _if_ the driver was originally written
elsewhere
and ported to the Linux kernel.
I disagree there. Only a few copyright holders of the kernel suggested that "previously written elsewhere" would be an exception. I haven't, Alan Cox has been very vocal about that he hasn't. I've not seen my employer say that it would make that exception either.
And it's a gray area. Is it ok if you have 5000 lines from another OS and 0 specific/modified for linux (the technical impossibility of this aside) Is 4990/10 still good? is 4900/100 still good ? is 4500/500 still good ? is 4000/1000 still good ? is 2500/2500 still good ? is 2000/3000 still good ? is 500/4500 still good ?
if anyone thinks this is a loophole their lawyers better have an answer for this...
(and note that I'm not claiming that those 4500 lines are a derived work
when used elsewhere. But I do consider it a derived work if it's in a
binary form where it does include linux specific code, and even code
from the linux kernel via say inlines).
<flame type="Binary Driver Hatred">
NOTE: I *strongly* discourage binary drivers. They're crap and frustrate
poor PowerPC users like me. Since this is purely a theoretical discussion,
and I want to discourage binary crud, this email is Copyrighted:
This email is Copyright (C) 2005 Kyle Moffett.
The remainder of this email is available under the GNU General Public
License, version 2. See http://www.gnu.org/licenses/gpl.txt for details.
THE BELOW MAY NOT BE USED IN A BINARY DRIVER, SO DON'T EVEN THINK ABOUT IT!
</flame>
Ok, so what if the _driver_ provides an API like this:
int start_driver(void); int stop_driver(void); void register_alloc(void *(*alloc)(unsigned long)); void register_free(void (*free)(void *)); [... more register functions here, generic functionality ...]
And a BSD licensed bit of glue based on that interface that connects the driver to a dozen different OSen by wrapping or using their interfaces directly.
Do you think _that's_ legal? As far as I can see, even that level is iffy, but it's a murky issue, and I doubt it will be decided one way or another until people test it in various courts.
Cheers, Kyle Moffett
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/CS/IT/U d- s++: a18 C++++>$ UB/L/X/*++++(+)>$ P+++(++++)>$
L++++(+++) E W++(+) N+++(++) o? K? w--- O? M++ V? PS+() PE+(-) Y+
PGP+++ t+(+++) 5 X R? tv-(--) b++++(++) DI+ D+ G e->++++$ h!*()>++$ r !y?(-)
------END GEEK CODE BLOCK------
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/