2004-03-04 13:41:08

by Rolf Eike Beer

[permalink] [raw]
Subject: GPLv2 or not GPLv2? (no license bashing)

Hi all,

just digging a bit in the kernel and found some funny things:

-there is a tag only for "GPL v2" but there are some drivers claiming to be
v2 and not using this (patch will follow)
-there are some drivers with the comment ", either version 2 of the License."
in the header. s/either // ? If so, there are some more files where someone
should change MODULE_LICENSE("GPL") to "GPL v2".
-there are some files that have the long warranty warning in the header. This
brings up the question if we should see the mainline kernel as one piece of
software. If we do so we need this warning only once and this copy should be
in the main kernel directory and we should kill the others. The other
question is: when I only write down the names of the authors in the header
and then add MODULE_LICENSE("GPL") or "GPL v2" is this enough licensing
information or is always the long comment needed (would be another nice
trick to shrink tons of files)?
-the LINUX_VERSION_CODE line in drivers/message/fusion/isense.c looks bogus,
the comment says it is for <2.5.0, but the line itself is for <2.3.0. Is
this wanted (fix the comment), bogus (fix the line) or crap (kill it
alltogether).

This are the files where I found "either version 2 of the License.":

arch/arm/mach-integrator/integrator_cp.c
drivers/serial/8250_pnp.c
drivers/serial/8250_pci.c
drivers/input/serio/pcips2.c
drivers/input/serio/sa1111ps2.c

These are some files (there are surely tons of others) with the long warning:

drivers/scsi/3w-xxxx.[ch]
drivers/message/fusion/mptctl.c
drivers/message/fusion/mptbase.[ch]
drivers/message/fusion/mptscsih.c
drivers/message/fusion/isense.c (*)
drivers/message/fusion/mptlan.[ch]
drivers/message/fusion/mptctl.[ch]
drivers/message/fusion/mptscsih.[ch]

Eike


2004-03-04 13:42:32

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH] Add missing "GPL"

Without this safe_serial taints the kernel, but it is GPL.

Eike

diff -aur linux-2.6.3/drivers/usb/serial/safe_serial.c linux-2.6.3-eike/drivers/usb/serial/safe_serial.c
--- linux-2.6.3/drivers/usb/serial/safe_serial.c 2004-02-18 04:57:20.000000000 +0100
+++ linux-2.6.3-eike/drivers/usb/serial/safe_serial.c 2004-03-02 09:23:11.000000000 +0100
@@ -93,6 +93,7 @@

MODULE_AUTHOR (DRIVER_AUTHOR);
MODULE_DESCRIPTION (DRIVER_DESC);
+MODULE_LICENSE("GPL");

#if defined(CONFIG_USBD_SAFE_SERIAL_VENDOR) && !defined(CONFIG_USBD_SAFE_SERIAL_PRODUCT)
#abort "SAFE_SERIAL_VENDOR defined without SAFE_SERIAL_PRODUCT"

2004-03-04 13:42:32

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH] Change "GPL" to "GPL v2" where files are GPLv2

>-there is a tag only for "GPL v2" but there are some drivers claiming to be
>v2 and not using this (patch will follow)

And here it is.

diff -aur linux-2.6.3/drivers/message/fusion/isense.c
linux-2.6.3-eike/drivers/message/fusion/isense.c
--- linux-2.6.3/drivers/message/fusion/isense.c 2004-02-18 04:57:56.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/isense.c 2004-03-04
08:04:14.000000000 +0100
@@ -91,7 +91,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
int __init isense_init(void)
diff -aur linux-2.6.3/drivers/message/fusion/mptbase.c
linux-2.6.3-eike/drivers/message/fusion/mptbase.c
--- linux-2.6.3/drivers/message/fusion/mptbase.c 2004-03-04
08:19:02.000000000 +0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptbase.c 2004-03-04
08:02:32.000000000 +0100
@@ -118,7 +118,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*
* cmd line parameters
diff -aur linux-2.6.3/drivers/message/fusion/mptctl.c
linux-2.6.3-eike/drivers/message/fusion/mptctl.c
--- linux-2.6.3/drivers/message/fusion/mptctl.c 2004-02-18 04:57:13.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptctl.c 2004-03-04
08:01:39.000000000 +0100
@@ -106,7 +106,7 @@
#endif
MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

diff -aur linux-2.6.3/drivers/message/fusion/mptlan.c
linux-2.6.3-eike/drivers/message/fusion/mptlan.c
--- linux-2.6.3/drivers/message/fusion/mptlan.c 2004-03-04 08:19:02.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptlan.c 2004-03-04
08:05:00.000000000 +0100
@@ -80,7 +80,7 @@

#define MYNAM "mptlan"

-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/*
diff -aur linux-2.6.3/drivers/message/fusion/mptscsih.c
linux-2.6.3-eike/drivers/message/fusion/mptscsih.c
--- linux-2.6.3/drivers/message/fusion/mptscsih.c 2004-03-04
08:19:02.000000000 +0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptscsih.c 2004-03-04
08:03:05.000000000 +0100
@@ -89,7 +89,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/* Set string for command line args from insmod */
#ifdef MODULE
diff -aur linux-2.6.3/drivers/pci/hotplug/fakephp.c
linux-2.6.3-eike/drivers/pci/hotplug/fakephp.c
--- linux-2.6.3/drivers/pci/hotplug/fakephp.c 2004-02-18 04:58:36.000000000
+0100
+++ linux-2.6.3-eike/drivers/pci/hotplug/fakephp.c 2004-03-04
07:49:33.000000000 +0100
@@ -226,7 +226,7 @@

MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");
MODULE_PARM(debug, "i");
MODULE_PARM_DESC(debug, "Debugging mode enabled or not");

diff -aur linux-2.6.3/drivers/scsi/3w-xxxx.c
linux-2.6.3-eike/drivers/scsi/3w-xxxx.c
--- linux-2.6.3/drivers/scsi/3w-xxxx.c 2004-02-18 04:59:31.000000000 +0100
+++ linux-2.6.3-eike/drivers/scsi/3w-xxxx.c 2004-03-04 07:59:08.000000000
+0100
@@ -189,7 +189,7 @@
#else
MODULE_DESCRIPTION ("3ware Storage Controller Linux Driver");
#endif
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

#include <linux/kernel.h>
#include <linux/pci.h>
diff -aur linux-2.6.3/drivers/usb/serial/usb-serial.c
linux-2.6.3-eike/drivers/usb/serial/usb-serial.c
--- linux-2.6.3/drivers/usb/serial/usb-serial.c 2004-02-18 04:57:31.000000000
+0100
+++ linux-2.6.3-eike/drivers/usb/serial/usb-serial.c 2004-03-02
09:54:22.000000000 +0100
@@ -1468,7 +1468,7 @@
/* Module information */
MODULE_AUTHOR( DRIVER_AUTHOR );
MODULE_DESCRIPTION( DRIVER_DESC );
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

MODULE_PARM(debug, "i");
MODULE_PARM_DESC(debug, "Debug enabled or not");

2004-03-04 14:09:42

by Richard B. Johnson

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

On Thu, 4 Mar 2004, Rolf Eike Beer wrote:

> Hi all,
>
> just digging a bit in the kernel and found some funny things:
>
> -there is a tag only for "GPL v2" but there are some drivers claiming to be
> v2 and not using this (patch will follow)
> -there are some drivers with the comment ", either version 2 of the License."
> in the header. s/either // ? If so, there are some more files where someone
> should change MODULE_LICENSE("GPL") to "GPL v2".

I don't think anybody, but the original author, can change the
licensing or its symbology. In other words, if there is a
MODULE_LICENSE("ZORK"), that stays until it is changed by
the author that inserted it initially.

In fact, a review of Linux history by a first-year law student
may show that somebody, not the original author, added the
MODULE_LICENSE() macro to a lot of modules that didn't have
any such macro, and thereby assigned some license that did
not previously exist! Such an implied license may not be valid
because the original author of the work did not perform that
assignment.

I think you need to be vigilant and not fall into the RMS trap
where anything that is "found" anywhere, automatically becomes
the property of GPL. It will invalidate the original spirit
and nature of GPL and, likely throw all such works into
the public domain. Caution is necessary, especially now
that there is a Wind River-Red Hat connection, and other such
connections being established in the future. Wind River was
the company that "bought" BSD/OS. I don't know how you do that --

Anyway, be very careful about changing what might have been
the original author's intent.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


2004-03-09 07:26:15

by Denis Vlasenko

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

On Thursday 04 March 2004 16:11, Richard B. Johnson wrote:
> On Thu, 4 Mar 2004, Rolf Eike Beer wrote:
> > Hi all,
> >
> > just digging a bit in the kernel and found some funny things:
> >
> > -there is a tag only for "GPL v2" but there are some drivers claiming to
> > be v2 and not using this (patch will follow)
> > -there are some drivers with the comment ", either version 2 of the
> > License." in the header. s/either // ? If so, there are some more files
> > where someone should change MODULE_LICENSE("GPL") to "GPL v2".
>
> I don't think anybody, but the original author, can change the
> licensing or its symbology. In other words, if there is a
> MODULE_LICENSE("ZORK"), that stays until it is changed by
> the author that inserted it initially.
>
> In fact, a review of Linux history by a first-year law student
> may show that somebody, not the original author, added the
> MODULE_LICENSE() macro to a lot of modules that didn't have
> any such macro, and thereby assigned some license that did
> not previously exist! Such an implied license may not be valid
> because the original author of the work did not perform that
> assignment.
>
> I think you need to be vigilant and not fall into the RMS trap
> where anything that is "found" anywhere, automatically becomes
> the property of GPL.

Well, Linux kernel is GPLed. If one adds his/hers code to
the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here.
"modifies existing GPLed code" is more accurate.

Or so I see it.
--
vda

2004-03-09 09:04:29

by Måns Rullgård

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

vda <[email protected]> writes:

> Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
> (s)he is automatically agrees to the terms of GPL.
>
> Because "adds code" is actually incorrect here. "modifies existing
> GPLed code" is more accurate.

Suppose I write a new kernel module, without touching any existing
code, and this module gets included in the kernel tree. Have I added
code? Yes. Have I modified GPLed code? I think not.

--
M?ns Rullg?rd
[email protected]

2004-03-09 09:56:28

by Denis Vlasenko

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

On Tuesday 09 March 2004 11:04, M?ns Rullg?rd wrote:
> vda <[email protected]> writes:
> > Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
> > (s)he is automatically agrees to the terms of GPL.
> >
> > Because "adds code" is actually incorrect here. "modifies existing
> > GPLed code" is more accurate.
>
> Suppose I write a new kernel module, without touching any existing
> code, and this module gets included in the kernel tree. Have I added
> code? Yes. Have I modified GPLed code? I think not.

I believe Linus said so too wrt out-of-tree modules.

I think modules included in 'official' tree better be GPLed
or else phrase 'Linux kernel is GPLed' becomes meaningless.
--
vda

2004-03-09 10:12:26

by Måns Rullgård

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

vda <[email protected]> writes:

> On Tuesday 09 March 2004 11:04, M?ns Rullg?rd wrote:
>> vda <[email protected]> writes:
>> > Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
>> > (s)he is automatically agrees to the terms of GPL.
>> >
>> > Because "adds code" is actually incorrect here. "modifies existing
>> > GPLed code" is more accurate.
>>
>> Suppose I write a new kernel module, without touching any existing
>> code, and this module gets included in the kernel tree. Have I added
>> code? Yes. Have I modified GPLed code? I think not.
>
> I believe Linus said so too wrt out-of-tree modules.
>
> I think modules included in 'official' tree better be GPLed
> or else phrase 'Linux kernel is GPLed' becomes meaningless.

That is true, but it doesn't necessarily make my code derived from
anything at all.

--
M?ns Rullg?rd
[email protected]

2004-03-09 16:59:22

by Jesse Pollard

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

On Tuesday 09 March 2004 03:04, M?ns Rullg?rd wrote:
> vda <[email protected]> writes:
> > Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
> > (s)he is automatically agrees to the terms of GPL.
> >
> > Because "adds code" is actually incorrect here. "modifies existing
> > GPLed code" is more accurate.
>
> Suppose I write a new kernel module, without touching any existing
> code, and this module gets included in the kernel tree. Have I added
> code? Yes. Have I modified GPLed code? I think not.

But you did incorporate GPL interfaces, likely some inline functions...

2004-03-09 17:26:58

by Måns Rullgård

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

Jesse Pollard <[email protected]> writes:

> On Tuesday 09 March 2004 03:04, M?ns Rullg?rd wrote:
>> vda <[email protected]> writes:
>> > Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
>> > (s)he is automatically agrees to the terms of GPL.
>> >
>> > Because "adds code" is actually incorrect here. "modifies existing
>> > GPLed code" is more accurate.
>>
>> Suppose I write a new kernel module, without touching any existing
>> code, and this module gets included in the kernel tree. Have I added
>> code? Yes. Have I modified GPLed code? I think not.
>
> But you did incorporate GPL interfaces, likely some inline functions...

Suppose for the sake of argument that I didn't. Besides, simply
including header files doesn't count.

--
M?ns Rullg?rd
[email protected]

2004-03-09 17:39:25

by Jesse Pollard

[permalink] [raw]
Subject: Re: GPLv2 or not GPLv2? (no license bashing)

On Tuesday 09 March 2004 11:26, M?ns Rullg?rd wrote:
> Jesse Pollard <[email protected]> writes:
> > On Tuesday 09 March 2004 03:04, M?ns Rullg?rd wrote:
> >> vda <[email protected]> writes:
> >> > Well, Linux kernel is GPLed. If one adds his/hers code to the kernel
> >> > (s)he is automatically agrees to the terms of GPL.
> >> >
> >> > Because "adds code" is actually incorrect here. "modifies existing
> >> > GPLed code" is more accurate.
> >>
> >> Suppose I write a new kernel module, without touching any existing
> >> code, and this module gets included in the kernel tree. Have I added
> >> code? Yes. Have I modified GPLed code? I think not.
> >
> > But you did incorporate GPL interfaces, likely some inline functions...
>
> Suppose for the sake of argument that I didn't. Besides, simply
> including header files doesn't count.

Then your binary module is good to go... until the next patch or update.