All of lore.kernel.org
 help / color / mirror / Atom feed
* Please open sysfs symbols to proprietary modules
@ 2005-02-02 22:56 Pavel Roskin
  2005-02-02 23:07 ` Greg KH
                   ` (5 more replies)
  0 siblings, 6 replies; 37+ messages in thread
From: Pavel Roskin @ 2005-02-02 22:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, Patrick Mochel

Hello!

I'm writing a module under a proprietary license.  I decided to use sysfs 
to do the configuration.  Unfortunately, all sysfs exports are available 
to GPL modules only because they are exported by EXPORT_SYMBOL_GPL.

I have found the original e-mail where this change was proposed:
http://www.ussg.iu.edu/hypermail/linux/kernel/0409.3/0345.html

Patrick writes:

"The users of these functions are all, in most cases, other subsystems, 
which provide a layer of abstraction for the downstream users (drivers, 
etc)."

Maybe it was true in September 2004, but it's not true in February 2005. 
sysfs has become a standard way to make configurable parameters available 
to userspace, just like sysctl and ioctl.

All I want to do is to have a module that would create subdirectories for 
some network interfaces under /sys/class/net/*/, which would contain 
additional parameters for those interfaces.  I'm not creating a new 
subsystem or anything like that.  sysctl is not good because the data is 
interface specific.  ioctl on a socket would be OK, although it wouldn't 
be easily scriptable.  The restriction on sysfs symbols would just force 
me to write a proprietary userspace utility to set those parameters 
instead of using a shell script.

My understanding is that EXPORT_SYMBOL_GPL is only useful for symbols so 
specific to the kernel that the modules that use them would be effectively 
based on GPL code.  But a module providing its internal state to the 
userspace doesn't need to be based on the kernel code in any way.

Please replace every EXPORT_SYMBOL_GPL with EXPORT_SYMBOL in fs/sysfs/*.c

-- 
Regards,
Pavel Roskin

^ permalink raw reply	[flat|nested] 37+ messages in thread
* Re: Please open sysfs symbols to proprietary modules
@ 2005-02-03  4:08 Jonathan A. George
  2005-02-03  5:07 ` Kyle Moffett
  0 siblings, 1 reply; 37+ messages in thread
From: Jonathan A. George @ 2005-02-03  4:08 UTC (permalink / raw)
  To: linux-kernel

As an observation:

The Linux kernel appears to contain the GPL copyright notice.  This 
appears to explicitly releases the right to alter anything in a copy 
written work which shares that copyright notice.  Therefore,  all 
exported symbols would appear to carry equal weight; thus making the 
GPL_ prefix a notation of dubious value.   Furthermore, it seems as if 
that the copyright might allow changing the GPL_ prefix notation to 
anything including BSD_HOOK_FOR_PORTING_DRIVERS_TO_THE_LINUX_KERNEL_ 
instead.

It would seem just as surprising if the U.S. courts were to stop 
considering history of enforcement in copyright law as it would if they 
were to start considering in cases of patent law.

(I would love to see the opinion of an IP lawyer who has conclusively 
tested these aspects of copyright law in court.)

--------------------

A paranoid approach it to develop your driver targeted at FreeBSD, and 
then develop a glue layer abstraction for porting to other OS's.  Then 
you simply might GPL your glue layer code as a module using any symbols 
you want for your GPL copy written code per the observations earlier in 
this email.

In this way you will have created a work with no intrinsic dependencies 
on the Linux kernel which avoids presenting your work as an obvious 
target for those who prefer to spend their time looking for targets. :-)

--------------------

P.S. Sorry about breaking mailer threading. :-(

^ permalink raw reply	[flat|nested] 37+ messages in thread
* Re: Please open sysfs symbols to proprietary modules
@ 2005-02-03 12:30 Jonathan A. George
  2005-02-04 15:16 ` Adrian Bunk
  0 siblings, 1 reply; 37+ messages in thread
From: Jonathan A. George @ 2005-02-03 12:30 UTC (permalink / raw)
  To: linux-kernel

<snip>
 > ...The EXPORT_SYMBOL_GPL is a license statement to binary module 
developers...
<snip>

As noted repeatedly a symbol prefix doesn't appear to carry any legal 
weight under U.S. law.  In fact the GPL copyright notice is appear 
legally limited to the granting of *copy* *rights* per U.S. copyright 
law and specifically does _not_ appear to implicitly or explicitly 
create the kind of exceptions you seem to be looking for.


 > The one major stumbling block is that any code that imports symbols
 > that are exported via "EXPORT_SYMBOL_GPL" can only legally _export_
 > symbols using the same, for the reason I stated above.

The GPL as a *copy* *right* notice can apparently only apply obviously 
derivative works under U.S. law, and an independent driver created for a 
different OS is obviously _not_ a derivative work.  Basically the 
attempt to create such a distinction does not appear to be supported by 
U.S. law as applied to the GPL.

 > If it's a non-GPL module it _cannot_ legally use EXPORT_SYMBOL_GPLed
 > symbols, either directly or indirectly, under any circumstances.

Actually you can probably use any symbols you want since only the glue 
layer to the OS independent driver is would appear derivative of Linux, 
and since the glue layer appears to be derivative of two *independent* 
works (the OS and the Driver when done this way) you might need to 
license the glue layer in a way which is compatible with both works.  
The current BSD license could be a good choice in this instance.

** As noted previously it would be interested to see the opinion of a 
U.S. IP lawyer who has conclusively tested the impact of copy right law 
where the boundary of what constitutes a derivative work was explicitly 
stated by a federal judge.

-----------------

P.S. Consider a kernel module which allows the use of a binary only 
MS-Windows driver in its unmodified stated.  Could you actually consider 
the MS-Windows driver to be a derivative work of the Linux kernel by 
virtue of an intermediate glue module which was BSD licensed and made 
free use of all symbols?  Would the Linux kernel be considered a 
derivative work of your motherboards firmware?  These seem rather 
unlikely conclusions.

^ permalink raw reply	[flat|nested] 37+ messages in thread
* Re: Please open sysfs symbols to proprietary modules
@ 2005-02-17 23:13 parker
  2005-02-18  3:32 ` Chris Friesen
  2005-02-18 13:13 ` Arjan van de Ven
  0 siblings, 2 replies; 37+ messages in thread
From: parker @ 2005-02-17 23:13 UTC (permalink / raw)
  To: arjan, linux-kernel

On Thu, 03 Feb 2005 09:41:00 +0100, Arjan van de Ven <arjan@infradead.org> wrote:
> On Wed, 2005-02-02 at 17:56 -0500, Pavel Roskin wrote:
> > Hello!
> >
> > I'm writing a module under a proprietary license.  I decided to use sysfs
> > to do the configuration.  Unfortunately, all sysfs exports are available
> > to GPL modules only because they are exported by EXPORT_SYMBOL_GPL.
> 
> I suggest you talk to a lawyer and review the general comments about
> binary modules with him (http://people.redhat.com/arjanv/COPYING.modules
> for example). You are writing an addition to linux from scratch, and it
> is generally not considered OK to do that in binary form (I certainly do
> not consider it OK).

So what about companies like ImageStream who write proprietary Linux network
drivers for their hardware from scratch with no previous ports from another OS?

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2005-02-18 13:13 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-02 22:56 Please open sysfs symbols to proprietary modules Pavel Roskin
2005-02-02 23:07 ` Greg KH
2005-02-02 23:23 ` Patrick Mochel
2005-02-02 23:29   ` Greg KH
2005-02-03  0:07     ` Pavel Roskin
2005-02-03  0:30       ` Greg KH
2005-02-03  4:54         ` Zan Lynx
2005-02-03  5:07           ` Greg KH
2005-02-03  8:59           ` Helge Hafting
2005-02-03 15:12           ` Alan Cox
2005-02-03 17:26             ` Theodore Ts'o
2005-02-03 13:47         ` linux-os
2005-02-04 16:05       ` David Woodhouse
2005-02-03  0:09 ` Joseph Pingenot
2005-02-03  1:13   ` Pavel Roskin
2005-02-03  2:50     ` Kyle Moffett
2005-02-03  3:17       ` Jon Masters
2005-02-06  7:24       ` Lee Revell
2005-02-07 16:05         ` Chris Friesen
2005-02-07 16:55           ` linux-os
2005-02-07 18:58             ` jerome lacoste
2005-02-07 19:35               ` linux-os
2005-02-07 16:55           ` Randy.Dunlap
2005-02-08  1:40             ` Horst von Brand
2005-02-03  4:57     ` Greg KH
2005-02-03  8:41 ` Arjan van de Ven
2005-02-03 21:00 ` Ben Greear
2005-02-04  9:20 ` Andrew Morton
2005-02-04  9:40   ` Arjan van de Ven
2005-02-15  1:41   ` Alan Cox
  -- strict thread matches above, loose matches on Subject: below --
2005-02-03  4:08 Jonathan A. George
2005-02-03  5:07 ` Kyle Moffett
2005-02-03 12:30 Jonathan A. George
2005-02-04 15:16 ` Adrian Bunk
2005-02-17 23:13 parker
2005-02-18  3:32 ` Chris Friesen
2005-02-18 13:13 ` Arjan van de Ven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.