2006-05-15 09:53:43

by Srinivas G.

[permalink] [raw]
Subject: GPL and NON GPL version modules

Dear All,

I have a small doubt about the GPL and NON GPL version modules.

If I have a module called module A which uses the GPL code and module B
uses the NON GPL (proprietary) code. If the module A depends on module
B, is it possible to load these modules? That is some of the functions
(which are defined in module B) are called from module A.

Will it be violating any GPL Rules?

Regards,
Srinivas G


2006-05-15 12:12:44

by Nutan C.

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

Hi Jan,

So, if the proprietary code exposes an interface and if the code within
the GPL makes a call to that interface, will the proprietary code become
part of GPL. Please suggest

Regards,
Nutan

-----Original Message-----
From: Jan Engelhardt [mailto:[email protected]]
Sent: Monday, May 15, 2006 5:39 PM
To: Srinivas G.
Cc: linux-kernel-Mailing-list; Fawad Lateef; [email protected]; Nutan C.;
Mukund JB.; [email protected]; [email protected]; [email protected]; Shakthi
Kannan
Subject: Re: GPL and NON GPL version modules

>
>If I have a module called module A which uses the GPL code and module B
>uses the NON GPL (proprietary) code. If the module A depends on module
>B, is it possible to load these modules?
>
Technically yes.

>Will it be violating any GPL Rules?
>

[ big IANAL sticker ]

More or less. If my understanding of the GPL is correct, the "combined"
thing (the kernel machinery, as in: the contents of your RAM) becomes
GPL.
But since proprietary code involved, it's gets a hell lot more
complicated,
since, obviously, you can't just GPLize proprietary code of others.



Jan Engelhardt
--

2006-05-15 12:52:22

by Xavier Bestel

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

On Mon, 2006-05-15 at 14:51, Xavier Bestel wrote:
> On Mon, 2006-05-15 at 14:12, Nutan C. wrote:
> > Hi Jan,
> >
> > So, if the proprietary code exposes an interface and if the code within
> > the GPL makes a call to that interface, will the proprietary code become
> > part of GPL. Please suggest
>
> No, but you don't have permission to redistribute the resulting kernel
> unless the whole code is GPL.
> In short, you can make it but you can't ship it.

BTW, for a real advice consult a real lawyer.

Xav

2006-05-15 12:51:49

by Xavier Bestel

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

On Mon, 2006-05-15 at 14:12, Nutan C. wrote:
> Hi Jan,
>
> So, if the proprietary code exposes an interface and if the code within
> the GPL makes a call to that interface, will the proprietary code become
> part of GPL. Please suggest

No, but you don't have permission to redistribute the resulting kernel
unless the whole code is GPL.
In short, you can make it but you can't ship it.

Xav


2006-05-15 12:55:08

by Manu Abraham

[permalink] [raw]
Subject: Re: GPL and NON GPL version modules

Srinivas G. wrote:
> Will it be violating any GPL Rules?
>
>

http://kororaa.org/index.php?entry=entry060512-160752


2006-05-15 13:07:34

by Steven Rostedt

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Nutan C. wrote:

> Hi Jan,
>
> So, if the proprietary code exposes an interface and if the code within
> the GPL makes a call to that interface, will the proprietary code become
> part of GPL. Please suggest
>

In a perfect world, all code is GPL ;)

I wont even bother with the IANAL sticker, since the lawyers I talked to
don't even know, nor would they put their career on the line for it.
Basically, you are entering a big grey area that won't be known until it
actually goes to court. And even then, it may be different for every
country.

If you compile the code as one blob, you definately violate the GPL. But
the problem comes when you have dynamic modules (and libraries). Although
the GPL says it can't be linked, it really matters about what is
considered a derived work. That's what copyrights cover.

So just because a module or library interacts with the GPL code, is it
really a derived work? Some people say yes, others no.

Note: I don't agree with what I'm about to say, but I can see it argued in
court this way.

Example:

Let's take Linux. I have a proprietary module that works with other OS's.
So I want to make it work with Linux too. So I write a GPL module that
will interact and work with my proprietary module (basically what nvidia
does). Now is my proprietary module a derived work of Linux? I would
find it hard to argue that it is. For the proprietary module works with
other OS's and really only the GPL interface can be considered derived.
The module is not dependent on Linux. But Linux may be dependent on the
module to work with some device.
(Note: I, personally, don't have a proprietary module. This is only an
example.)

Now, the question comes if your module _only_ works with Linux. This may
be harder to defend, since there could be an agrument that it _is_ a
derived work.

So it basically comes down to how much you think you can defend your
decision in the countries that you distribute to. The safest bet is to
open all your code as GPL. But if you cant, then you must weigh your
risks, and no one else can do that for you.

-- Steve

2006-05-15 13:34:19

by Nutan C.

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

Ok, so now, I have a new doubt :-) Forgive me, if I am asking a lot, but
I really don't want to move ahead with the development, until and unless
I am sure I am not violating GPL. So, please bear with me. Here's the
question:

1. I developed a code which interfaces well with a proprietary OS. Now,
somebody else feels to use the same module in his Linux Kernel. So, he
comes up with a patch, which interfaces and talks to my module with my
interfaces and then makes a release with the patch. And, I would have no
idea of my module being really compatible/used in Linux Kernel. One fine
day, I would get a mail saying that I need to make my code open source.
What would be my reply?

-----Original Message-----
From: Steven Rostedt [mailto:[email protected]]
Sent: Monday, May 15, 2006 6:37 PM
To: Nutan C.
Cc: Jan Engelhardt; linux-kernel-Mailing-list; Fawad Lateef;
[email protected]; Mukund JB.; [email protected]; [email protected];
[email protected]; Shakthi Kannan; Srinivas G.
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Nutan C. wrote:

> Hi Jan,
>
> So, if the proprietary code exposes an interface and if the code
within
> the GPL makes a call to that interface, will the proprietary code
become
> part of GPL. Please suggest
>

In a perfect world, all code is GPL ;)

I wont even bother with the IANAL sticker, since the lawyers I talked to
don't even know, nor would they put their career on the line for it.
Basically, you are entering a big grey area that won't be known until it
actually goes to court. And even then, it may be different for every
country.

If you compile the code as one blob, you definately violate the GPL. But
the problem comes when you have dynamic modules (and libraries).
Although
the GPL says it can't be linked, it really matters about what is
considered a derived work. That's what copyrights cover.

So just because a module or library interacts with the GPL code, is it
really a derived work? Some people say yes, others no.

Note: I don't agree with what I'm about to say, but I can see it argued
in
court this way.

Example:

Let's take Linux. I have a proprietary module that works with other
OS's.
So I want to make it work with Linux too. So I write a GPL module that
will interact and work with my proprietary module (basically what nvidia
does). Now is my proprietary module a derived work of Linux? I would
find it hard to argue that it is. For the proprietary module works with
other OS's and really only the GPL interface can be considered derived.
The module is not dependent on Linux. But Linux may be dependent on the
module to work with some device.
(Note: I, personally, don't have a proprietary module. This is only an
example.)

Now, the question comes if your module _only_ works with Linux. This
may
be harder to defend, since there could be an agrument that it _is_ a
derived work.

So it basically comes down to how much you think you can defend your
decision in the countries that you distribute to. The safest bet is to
open all your code as GPL. But if you cant, then you must weigh your
risks, and no one else can do that for you.

-- Steve

2006-05-15 13:42:36

by Steven Rostedt

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Nutan C. wrote:

> Ok, so now, I have a new doubt :-) Forgive me, if I am asking a lot, but
> I really don't want to move ahead with the development, until and unless
> I am sure I am not violating GPL. So, please bear with me. Here's the
> question:
>
> 1. I developed a code which interfaces well with a proprietary OS. Now,
> somebody else feels to use the same module in his Linux Kernel. So, he
> comes up with a patch, which interfaces and talks to my module with my
> interfaces and then makes a release with the patch. And, I would have no
> idea of my module being really compatible/used in Linux Kernel. One fine
> day, I would get a mail saying that I need to make my code open source.
> What would be my reply?
>

Big fat answer is No! You are not distributing GPL code. Just because
someone made GPL code that interacts with your module, doesn't make you
responsible for it. (OK now for a IANAL disclaimer) I'm not a lawyer, but
I would bet my career on this one (at least in the US).

You cant be held responsible for someone else's actions.

So your reply is simple:

I'm sorry, but I don't distribute GPL code, please see your distributor.

-- Steve

2006-05-15 13:49:54

by Steven Rostedt

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Steven Rostedt wrote:

>
> On Mon, 15 May 2006, Nutan C. wrote:
>
> > Ok, so now, I have a new doubt :-) Forgive me, if I am asking a lot, but
> > I really don't want to move ahead with the development, until and unless
> > I am sure I am not violating GPL. So, please bear with me. Here's the
> > question:
> >
> > 1. I developed a code which interfaces well with a proprietary OS. Now,
> > somebody else feels to use the same module in his Linux Kernel. So, he
> > comes up with a patch, which interfaces and talks to my module with my
> > interfaces and then makes a release with the patch. And, I would have no
> > idea of my module being really compatible/used in Linux Kernel. One fine
> > day, I would get a mail saying that I need to make my code open source.
> > What would be my reply?
> >
>
> Big fat answer is No! You are not distributing GPL code. Just because
> someone made GPL code that interacts with your module, doesn't make you
> responsible for it. (OK now for a IANAL disclaimer) I'm not a lawyer, but
> I would bet my career on this one (at least in the US).
>
> You cant be held responsible for someone else's actions.
>
> So your reply is simple:
>
> I'm sorry, but I don't distribute GPL code, please see your distributor.


One more note. The person that distributed the GPL code with your module
may be the one in the "grey area". But then again, how can your module be
a derived work if the author didn't even intend on having it work with
Linux?

-- Steve

2006-05-15 14:01:10

by Nutan C.

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

As I said, I haven't started any development and wouldn't want to
proceed unless and until I am sure of not violating GPL. I am working on
a proprietary OS and I have a module which can talk to the OS through
remote mechanism. However, since the interface is susceptible to be used
by other OS as well, I wanted to make sure of it. I am not an expert in
Linux. And, that's the reason; I am seeking your opinion, so that I
don't falter at a later stage.

Regards,
Nutan

-----Original Message-----
From: Steven Rostedt [mailto:[email protected]]
Sent: Monday, May 15, 2006 7:19 PM
To: Nutan C.
Cc: Jan Engelhardt; linux-kernel-Mailing-list; Fawad Lateef;
[email protected]; Mukund JB.; [email protected]; [email protected];
[email protected]; Shakthi Kannan; Srinivas G.
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Steven Rostedt wrote:

>
> On Mon, 15 May 2006, Nutan C. wrote:
>
> > Ok, so now, I have a new doubt :-) Forgive me, if I am asking a lot,
but
> > I really don't want to move ahead with the development, until and
unless
> > I am sure I am not violating GPL. So, please bear with me. Here's
the
> > question:
> >
> > 1. I developed a code which interfaces well with a proprietary OS.
Now,
> > somebody else feels to use the same module in his Linux Kernel. So,
he
> > comes up with a patch, which interfaces and talks to my module with
my
> > interfaces and then makes a release with the patch. And, I would
have no
> > idea of my module being really compatible/used in Linux Kernel. One
fine
> > day, I would get a mail saying that I need to make my code open
source.
> > What would be my reply?
> >
>
> Big fat answer is No! You are not distributing GPL code. Just
because
> someone made GPL code that interacts with your module, doesn't make
you
> responsible for it. (OK now for a IANAL disclaimer) I'm not a lawyer,
but
> I would bet my career on this one (at least in the US).
>
> You cant be held responsible for someone else's actions.
>
> So your reply is simple:
>
> I'm sorry, but I don't distribute GPL code, please see your
distributor.


One more note. The person that distributed the GPL code with your
module
may be the one in the "grey area". But then again, how can your module
be
a derived work if the author didn't even intend on having it work with
Linux?

-- Steve

2006-05-15 14:00:53

by Alan

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

On Llu, 2006-05-15 at 19:04 +0530, Nutan C. wrote:
> 1. I developed a code which interfaces well with a proprietary OS. Now,
> somebody else feels to use the same module in his Linux Kernel. So, he
> comes up with a patch, which interfaces and talks to my module with my
> interfaces and then makes a release with the patch. And, I would have no
> idea of my module being really compatible/used in Linux Kernel. One fine
> day, I would get a mail saying that I need to make my code open source.
> What would be my reply?

Probably not polite

If someone takes your proprietary code and combines it with GPL code in
a way the GPL license prohibits then they not you are committing the
license violation (they are probably also violating your license as well
as the GPL license by doing so)

There are exceptions to that - one might be if you developed the code
and arranged for the person to do the merge with Linux rather than
someone else doing it.

In the normal case of things I can combine two works only if the
licenses of the two works are compatible, that is effectively only if I
have permission from all parties who own rights on the resulting
"derivative" work.

Alan



2006-05-15 14:02:00

by Alan

[permalink] [raw]
Subject: Re: GPL and NON GPL version modules

On Llu, 2006-05-15 at 15:23 +0530, Srinivas G. wrote:
> Dear All,
>
> I have a small doubt about the GPL and NON GPL version modules.
>
> If I have a module called module A which uses the GPL code and module B
> uses the NON GPL (proprietary) code. If the module A depends on module
> B, is it possible to load these modules? That is some of the functions
> (which are defined in module B) are called from module A.
>
> Will it be violating any GPL Rules?

Probably. Ask your company lawyer to advise you on the subject of
"derivative works".

Alan

2006-05-15 14:05:56

by Nutan C.

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

Thanks Steven, I got all the required information.

Regards,
Nutan

-----Original Message-----
From: Steven Rostedt [mailto:[email protected]]
Sent: Monday, May 15, 2006 7:19 PM
To: Nutan C.
Cc: Jan Engelhardt; linux-kernel-Mailing-list; Fawad Lateef;
[email protected]; Mukund JB.; [email protected]; [email protected];
[email protected]; Shakthi Kannan; Srinivas G.
Subject: RE: GPL and NON GPL version modules


On Mon, 15 May 2006, Steven Rostedt wrote:

>
> On Mon, 15 May 2006, Nutan C. wrote:
>
> > Ok, so now, I have a new doubt :-) Forgive me, if I am asking a lot,
but
> > I really don't want to move ahead with the development, until and
unless
> > I am sure I am not violating GPL. So, please bear with me. Here's
the
> > question:
> >
> > 1. I developed a code which interfaces well with a proprietary OS.
Now,
> > somebody else feels to use the same module in his Linux Kernel. So,
he
> > comes up with a patch, which interfaces and talks to my module with
my
> > interfaces and then makes a release with the patch. And, I would
have no
> > idea of my module being really compatible/used in Linux Kernel. One
fine
> > day, I would get a mail saying that I need to make my code open
source.
> > What would be my reply?
> >
>
> Big fat answer is No! You are not distributing GPL code. Just
because
> someone made GPL code that interacts with your module, doesn't make
you
> responsible for it. (OK now for a IANAL disclaimer) I'm not a lawyer,
but
> I would bet my career on this one (at least in the US).
>
> You cant be held responsible for someone else's actions.
>
> So your reply is simple:
>
> I'm sorry, but I don't distribute GPL code, please see your
distributor.


One more note. The person that distributed the GPL code with your
module
may be the one in the "grey area". But then again, how can your module
be
a derived work if the author didn't even intend on having it work with
Linux?

-- Steve

2006-05-15 14:14:39

by Steven Rostedt

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

On Mon, 15 May 2006, Nutan C. wrote:

> As I said, I haven't started any development and wouldn't want to
> proceed unless and until I am sure of not violating GPL. I am working on
> a proprietary OS and I have a module which can talk to the OS through
> remote mechanism. However, since the interface is susceptible to be used
> by other OS as well, I wanted to make sure of it. I am not an expert in
> Linux. And, that's the reason; I am seeking your opinion, so that I
> don't falter at a later stage.
>

You don't need to be an expert in Linux to know this. You need to have an
understanding of basic copyright law. You are not taking any GPL work and
distributing it, so you are not even affected by the GPL at all. If this
was the case, someone would have already written a GPL interface with MS
Windows and made MS open up their source. (BTW, there is a GPL work that
interacts remotely with MS, it's called Samba ;)

Go ahead and start on your work. On what you have said, your are totally
safe.

-- Steve

2006-05-15 15:10:21

by Greg KH

[permalink] [raw]
Subject: Re: GPL and NON GPL version modules

On Mon, May 15, 2006 at 03:23:30PM +0530, Srinivas G. wrote:
> Dear All,
>
> I have a small doubt about the GPL and NON GPL version modules.
>
> If I have a module called module A which uses the GPL code and module B
> uses the NON GPL (proprietary) code. If the module A depends on module
> B, is it possible to load these modules? That is some of the functions
> (which are defined in module B) are called from module A.
>
> Will it be violating any GPL Rules?

Contact a lawyer, a technical mailing list can not give legal advice.

Good luck,

greg k-h

2006-05-15 15:13:00

by Jan Engelhardt

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

>You don't need to be an expert in Linux to know this. You need to have an
>understanding of basic copyright law. You are not taking any GPL work and
>distributing it, so you are not even affected by the GPL at all. If this
>was the case, someone would have already written a GPL interface with MS
>Windows and made MS open up their source. (BTW, there is a GPL work that
>interacts remotely with MS, it's called Samba ;)
>
And one that pokes directly with it, WINE. :>


Jan Engelhardt
--

2006-05-15 15:29:13

by Arjan van de Ven

[permalink] [raw]
Subject: Re: GPL and NON GPL version modules

On Mon, 2006-05-15 at 15:23 +0530, Srinivas G. wrote:
> Dear All,
>
> I have a small doubt about the GPL and NON GPL version modules.

then you should talk to a lawyer for legal advice

>
> If I have a module called module A which uses the GPL code and module B
> uses the NON GPL (proprietary) code. If the module A depends on module
> B, is it possible to load these modules? That is some of the functions
> (which are defined in module B) are called from module A.

and explain to him how you created the modules and then ask him a few
questions like

1) at what point does the non-gpl part become a derived work of the gpl
part?
2) can I distribute A and B together, given the clause 2 of the GPL
which may restrict when you can distribute a GPL component with other
stuff?
3) how does the answer to 1) and 2) vary in different countries?
4) will you defend me in court if I follow your advice?
(eg how sure are you of your answers)

and then listen really carefully to what your lawyer has to say on these
points, and then and only then make your own decision, based on what he
says, if you want to go forward with what you describe.


2006-05-15 15:50:09

by Steven Rostedt

[permalink] [raw]
Subject: Re: GPL and NON GPL version modules



On Mon, 15 May 2006, Greg KH wrote:

> On Mon, May 15, 2006 at 03:23:30PM +0530, Srinivas G. wrote:
> >
> > Will it be violating any GPL Rules?
>
> Contact a lawyer, a technical mailing list can not give legal advice.
>

Sure we can! but you'd be a fool to follow it ;)

Actually, his real question was pretty straight forward that you don't
even need to be a lawyer to answer.

He was wondering if he wrote a priority module for a priority OS and
someone else that he didn't know wrote a GPL interface to his module,
would he be responsible to release his code under the GPL.

So he's not distributing any GPL, but someone else did without his
knowledge. This is pretty easy to answer. He's not responsible, but the
one who wrote the GPL code and used it with his module is. He was just a
bit paranoid that someone else can cause him problems.

Issue's solved, he knows he's OK.

-- Steve

2006-05-16 03:43:05

by David Schwartz

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules


> 1. I developed a code which interfaces well with a proprietary OS. Now,
> somebody else feels to use the same module in his Linux Kernel. So, he
> comes up with a patch, which interfaces and talks to my module with my
> interfaces and then makes a release with the patch. And, I would have no
> idea of my module being really compatible/used in Linux Kernel. One fine
> day, I would get a mail saying that I need to make my code open source.
> What would be my reply?

When you say "makes a release with the patch", what are you talking about?
A release of what? It sounds like all you need to do is include a note in
your license that you prohibit combining your code with GPL'd code and
distributing the result. Talk to a lawyer about the right wording, but you
want to impose complying with any GPL obligations on the person who chooses
to combine your code with GPL'd code. Then it's not your problem.

However, I don't see how it's your problem anyway. This sounds way outside
the scope of the GPL or any copyright license. Since your module is not a
derivative work of any GPL'd work, it should be well outside the scope of
the GPL. Nothing anyone else can do could change the status of your work.

DS


2006-05-16 08:52:18

by Xavier Bestel

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules

On Tue, 2006-05-16 at 05:42, David Schwartz wrote:
> > 1. I developed a code which interfaces well with a proprietary OS. Now,
> > somebody else feels to use the same module in his Linux Kernel. So, he
> > comes up with a patch, which interfaces and talks to my module with my
> > interfaces and then makes a release with the patch. And, I would have no
> > idea of my module being really compatible/used in Linux Kernel. One fine
> > day, I would get a mail saying that I need to make my code open source.
> > What would be my reply?
>
> When you say "makes a release with the patch", what are you talking about?
> A release of what? It sounds like all you need to do is include a note in
> your license that you prohibit combining your code with GPL'd code and
> distributing the result. Talk to a lawyer about the right wording, but you
> want to impose complying with any GPL obligations on the person who chooses
> to combine your code with GPL'd code. Then it's not your problem.
>
> However, I don't see how it's your problem anyway. This sounds way outside
> the scope of the GPL or any copyright license. Since your module is not a
> derivative work of any GPL'd work, it should be well outside the scope of
> the GPL.

Unless the "someone else will release a GPL wrapper to my proprietary
module" accident is planned from the start.

Xav


2006-05-16 19:54:55

by David Schwartz

[permalink] [raw]
Subject: RE: GPL and NON GPL version modules


> Unless the "someone else will release a GPL wrapper to my proprietary
> module" accident is planned from the start.
>
> Xav

There certainly does seem to be some reason for suspicion.

I would say that this doesn't matter so long as the two works are separate.
That is, two people could plan this from the start, act in concert, and
still be okay. However, they would have to make sure that nothing about the
GPL wrapper contaminates the proprietary module. That is, the proprietary
module must not in any way be designed to accomondate the GPL wrapper,
except perhaps in the form of generic accomodation for any wrapper.

If the proprietary module contains any code that is designed specifically
to accomodate the GPL wrapper, the line is crossed. Whether or not that
consitutes a legal violation, however, is a complicated question.

So long as the proprietary module was not designed to work with GPL'd code
(more than it's generically designed to work with other code of the same
type) and contains no GPL'd code, you should be okay. However, as soon as
any of the design of the proprietary code is intended to facilitate
interoperation with specific GPL'd code, you could start to get into
trouble.

You should definitely consult a lawyer, but prepared for the answer,
"nobody really knows". They can chart out what is almost definitely safe and
what is almost definitely illegal, but there is a huge space in-between.

DS