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]
Date:	Wed, 06 Feb 2008 09:44:36 +1030
From:	David Newall <davidn@...idnewall.com>
To:	Greg KH <greg@...ah.com>
Cc:	Christer Weinigel <christer@...nigel.se>,
	Pekka Enberg <penberg@...helsinki.fi>,
	linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] USB: mark USB drivers as being GPL only

Greg KH writes:
> No, it really is not a gray area at all, especially when you are writing
> a new driver for Linux.  Go talk to a lawyer if you want the details.

If we're still talking about whether a kernel module is required to be 
released under GPL, then yes, this is not a gray area.  This is something 
that authors of original works can decide for themselves.  They have no 
obligation to release under GPL, however they must take special care to 
ensure that the module does not (statically) link with the kernel.  Richard 
Stallman (apparently, according to Pavel Roskin, although he didn't forward 
Richard's message as requested) said it nicely: 

According to Pavel Roskin, Richard Stallman said:
> It is not in general the case that "dynamic linking cannot violate the
> GPL".  It depends on circumstances.  Running a non-free program in a
> process in a GNU/Linux system is not linking of any kind with Linux.
> The program probably links with GNU libc, but the license of GNU libc
> permits that.

A kernel module is akin to a process.  It uses services of the kernel 
without being part of the kernel.  However in order to use the kernel it 
might very well statically link with kernel support functions, such as 
copy_from_user().  This, it may not do without garnering a requirement to be 
released under GPL.  That being said, a module can be written such that it 
only dynamically links with the kernel.  Ndiswrapper is an example of how 
this can be done: None of the drivers that work under ndiswrapper make any 
direct use of the kernel, not in any way, indeed a wrapper could be written 
for a different operating system.  There is no obligation for ndis drivers 
to be released under GPL, and even though they are not, they break no 
licence condition by calling services, even those exported as GPL-only. 

Bringing this back to the point, the notion that some exported symbols may 
be accessed by proprietary modules and others can't is wrong.  The licence 
under which Linux is released makes no mention of this possibility, and so 
no such condition exists.  In order to prevent proprietary modules from 
using a symbol, that symbol must be provided in such a way that a second 
module can only statically link to it.  I think that precludes exporting it 
via EXPORT_SYMBOL or EXPORT_SYMBOL_GPL. 

Summarising the point: To claim all USB drivers must be released under GPL 
is wrong.
--
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