2002-06-19 15:41:12

by Shipman, Jeffrey E

[permalink] [raw]
Subject: GPL module question

I hope this is not off-topic. If it is, please point
me in the right direction.

I'm currently writing a Linux Kernel module. Does
this have to be under the GPL because it uses kernel
routines? I really don't know of a way around
using kernel routines because that's whatcha gotta
do inside the kernel. :)

Hopefully this won't be an issue (it's not classified
material or anything). I'm still waiting for my
manager to get back to me on it.

Jeff Shipman - CCD
Sandia National Laboratories
(505) 844-1158 / MS-1372


2002-06-19 16:14:53

by Richard B. Johnson

[permalink] [raw]
Subject: Re: GPL module question

On Wed, 19 Jun 2002, Shipman, Jeffrey E wrote:

> I hope this is not off-topic. If it is, please point
> me in the right direction.
>
> I'm currently writing a Linux Kernel module. Does
> this have to be under the GPL because it uses kernel
> routines? I really don't know of a way around
> using kernel routines because that's whatcha gotta
> do inside the kernel. :)
>
> Hopefully this won't be an issue (it's not classified
> material or anything). I'm still waiting for my
> manager to get back to me on it.
>
> Jeff Shipman - CCD
> Sandia National Laboratories
> (505) 844-1158 / MS-1372
>

My read on this is that you can do anything you want for your own
local purposes. It's just like whatever you do in your bedroom
is your business.

Now, if you intend to make a product that needs the module so
it can work, then it should be written/released under GPL or
some similar license that lets user's look at and possibly modify
the source-code.

The operative word is "should" and here's the rub; It is possible
that to divulge the source-code would expose company trade secrets.
For instance, lets say your company invented a portable network
transceiver that does spread-spectrum, with signals so far down
into the noise that nobody could intercept them except the intended
receiver. To do this, you used an old-fashion 8250 UART in a strange
way. If you were to publish the source-code of the interface, then
everybody would know that the "secret" macro-cell in the custom
chip was just an obsolete UART. Your intellectual property is stolen,
you are out of business, and some Pacific rim company lives happily
ever-after off from your work.

So, to protect yourself from this, it is possible to make a wrapper
around your specific device that has to be protected, and release
this as an object file. This gets linked with the other stuff from
your published source-code.

You should expect a lot of persons to bitch-and-moan if you have to
supply an object file instead of some source, but if the product and
the module necessary to support it is very useful, most will "put up
and shut up".


Cheers,
Dick Johnson

Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).

Windows-2000/Professional isn't.

2002-06-19 16:21:14

by Stephen Samuel

[permalink] [raw]
Subject: Re: GPL module question

I think that this one depends on where/how you're
using and distributing the module. (I remember
hearing that special dispensation was given for
drivers but I can't really comment).

The biggest question is whether or not you're distributing
copies of Linux, or other drivers. If you're not making
copies of other people's GPL code, then you don't have to
distribute the source to your code to your driver. This
is because the GPL really only kicks in when you
redistribute GPL code .. not when you distribute your own.

Where not distributing source code may bite you, however
is getting OS distribution makers (e.g. RedHat, SuSe,
Debian) to include copies of your drivers with their
distribution. It is at best borderline, and at worst
illegal to do so. If you've read the GPL, you'll notice
that breaching the GPL code means that you COMPLETELY
LOSE the ability to redistribute The GPL code.

For a company/group for whom their entire reason for
being is the distribution of Linux, losing the right
to do so is a pretty high risk to take for a simple
driver.

--------
--------
For a longer answer: If you are intending to try and
distribute GPL code alongside your own non-open code,
I'd trongly suggest that you hand the whole question
off to a set of high-paid lawyers. You'll be putting
your business model into the middle of a legal mine
field (presuming you don't start *on top* of a mine).
Under those conditions, putting your business into the
hands of the legal opinion of a bunch of programmers
would be *stupid*.

On the other hand, if you GPL your code, then you'll
be fine. If your business is selling hardware, then
there's little real loss in making the code available
and lots of advantages (like making it FAR more likely
that Linux distributions will include your drivers).


Shipman, Jeffrey E wrote:
> I hope this is not off-topic. If it is, please point
> me in the right direction.
>
> I'm currently writing a Linux Kernel module. Does
> this have to be under the GPL because it uses kernel
> routines? I really don't know of a way around
> using kernel routines because that's whatcha gotta
> do inside the kernel. :)
>
> Hopefully this won't be an issue (it's not classified
> material or anything). I'm still waiting for my
> manager to get back to me on it.
>
> Jeff Shipman - CCD
> Sandia National Laboratories
> (505) 844-1158 / MS-1372
>
> -
> 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/


--
Stephen Samuel +1(604)876-0426 [email protected]
http://www.bcgreen.com/~samuel/
Powerful committed communication, reaching through fear, uncertainty and
doubt to touch the jewel within each person and bring it to life.

2002-06-19 16:59:21

by Jeff V. Merkey

[permalink] [raw]
Subject: Re: GPL module question



Unless you lift someone's code "whole cloth" and use it, there
is no obligation to GPL any of your module code. Just make certain
you stick to exported functions in /proc/ksyms. If you add functions,
and export anything declared "static" in the kernel, then you may
have a requirement to GPL any code that touches these areas.

There are folks who will as Richard says "complain" about this
but in the real world, people need to make money off Linux and
it's in everyone's interest for folks to have some elements they
can use to eek out a living so Linux can keep it's momentum
going. Of late, things have been floundering in terms of
direction and Linux is starting to fall into the same rut
I have seen NetWare and W2K in for the past few years.

The more folks who can build stable businesses around Linux the
better off we all are, GPL and non-GPL folks alike.

Make certain if you modify any kernel code to make your module
work you post those changes back to this list so the maintainers
can accept or reject your patches. If you do this you will be
squeaky clean and if you have some success it will help Linux
in the long run.

However, be advised that if what you are doing is really cool some
of the more enterprising folks may create GPL enhancements of
what you have created.

:-)

Jeff

On Wed, Jun 19, 2002 at 09:20:55AM -0700, Stephen Samuel wrote:
> I think that this one depends on where/how you're
> using and distributing the module. (I remember
> hearing that special dispensation was given for
> drivers but I can't really comment).
>
> The biggest question is whether or not you're distributing
> copies of Linux, or other drivers. If you're not making
> copies of other people's GPL code, then you don't have to
> distribute the source to your code to your driver. This
> is because the GPL really only kicks in when you
> redistribute GPL code .. not when you distribute your own.
>
> Where not distributing source code may bite you, however
> is getting OS distribution makers (e.g. RedHat, SuSe,
> Debian) to include copies of your drivers with their
> distribution. It is at best borderline, and at worst
> illegal to do so. If you've read the GPL, you'll notice
> that breaching the GPL code means that you COMPLETELY
> LOSE the ability to redistribute The GPL code.
>
> For a company/group for whom their entire reason for
> being is the distribution of Linux, losing the right
> to do so is a pretty high risk to take for a simple
> driver.
>
> --------
> --------
> For a longer answer: If you are intending to try and
> distribute GPL code alongside your own non-open code,
> I'd trongly suggest that you hand the whole question
> off to a set of high-paid lawyers. You'll be putting
> your business model into the middle of a legal mine
> field (presuming you don't start *on top* of a mine).
> Under those conditions, putting your business into the
> hands of the legal opinion of a bunch of programmers
> would be *stupid*.
>
> On the other hand, if you GPL your code, then you'll
> be fine. If your business is selling hardware, then
> there's little real loss in making the code available
> and lots of advantages (like making it FAR more likely
> that Linux distributions will include your drivers).
>
>
> Shipman, Jeffrey E wrote:
> > I hope this is not off-topic. If it is, please point
> > me in the right direction.
> >
> > I'm currently writing a Linux Kernel module. Does
> > this have to be under the GPL because it uses kernel
> > routines? I really don't know of a way around
> > using kernel routines because that's whatcha gotta
> > do inside the kernel. :)
> >
> > Hopefully this won't be an issue (it's not classified
> > material or anything). I'm still waiting for my
> > manager to get back to me on it.
> >
> > Jeff Shipman - CCD
> > Sandia National Laboratories
> > (505) 844-1158 / MS-1372
> >
> > -
> > 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/
>
>
> --
> Stephen Samuel +1(604)876-0426 [email protected]
> http://www.bcgreen.com/~samuel/
> Powerful committed communication, reaching through fear, uncertainty and
> doubt to touch the jewel within each person and bring it to life.
>
> -
> 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/

2002-06-20 23:48:33

by Stephen Samuel

[permalink] [raw]
Subject: Re: GPL module question

I don't think that there's any disagreement between what I said
and what Jeff said. Code that you write is yours to GPL or not
GPL, as you wish. There are, however functional issues to consider,
like the fact that some people will 'complain' about your not
releasing your source code, and that some (most?) of the more
common distributions will have issues (either legal or moral)
about including 'closed' code in their distributions.

The simple case is where you're including the drivers with
your hardware on a disk that is entirely free of GPL code.
In that case, you can do whatever the hell you want with
the source code.

To get some of the other advantages of OS code (like community
support for your drivers and easy inclusion in common
distributions), chances are that you'll have to release
the source code.

Jeff V. Merkey wrote:
> Unless you lift someone's code "whole cloth" and use it, there
> is no obligation to GPL any of your module code. Just make certain
> you stick to exported functions in /proc/ksyms. If you add functions,
> and export anything declared "static" in the kernel, then you may
> have a requirement to GPL any code that touches these areas.
.....

--
Stephen Samuel +1(604)736-2266 [email protected]
http://www.bcgreen.com/~samuel/
Powerful committed communication, reaching through fear, uncertainty and
doubt to touch the jewel within each person and bring it to life.